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
@@ -9,6 +9,9 @@ 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
13
16
  # The dispatcher class fires events for nodes that are found while walking an
14
17
  # AST to all registered listeners. It's useful for performing different types
@@ -43,17 +46,20 @@ module Prism
43
46
  # dispatcher.dispatch_once(integer)
44
47
  #
45
48
  class Dispatcher < Visitor
46
- # attr_reader listeners: Hash[Symbol, Array[Listener]]
47
- attr_reader :listeners
49
+ # A hash mapping event names to arrays of listeners that should be notified
50
+ # when that event is fired.
51
+ attr_reader :listeners #: Hash[Symbol, Array[untyped]]
48
52
 
49
53
  # Initialize a new dispatcher.
54
+ #
55
+ #: () -> void
50
56
  def initialize
51
57
  @listeners = {}
52
58
  end
53
59
 
54
60
  # Register a listener for one or more events.
55
61
  #
56
- # def register: (Listener, *Symbol) -> void
62
+ #: (untyped, *Symbol) -> void
57
63
  def register(listener, *events)
58
64
  register_events(listener, events)
59
65
  end
@@ -61,2144 +67,2311 @@ module Prism
61
67
  # Register all public methods of a listener that match the pattern
62
68
  # `on_<node_name>_(enter|leave)`.
63
69
  #
64
- # def register_public_methods: (Listener) -> void
70
+ #: (untyped) -> void
65
71
  def register_public_methods(listener)
66
72
  register_events(listener, listener.public_methods(false).grep(/\Aon_.+_(?:enter|leave)\z/))
67
73
  end
68
74
 
69
75
  # Register a listener for the given events.
70
- private def register_events(listener, events)
76
+ #
77
+ #: (untyped, Array[Symbol]) -> void
78
+ private def register_events(listener, events) # :nodoc:
71
79
  events.each { |event| (listeners[event] ||= []) << listener }
72
80
  end
73
81
 
74
82
  # Walks `root` dispatching events to all registered listeners.
75
- #
76
- # def dispatch: (Node) -> void
77
83
  alias dispatch visit
78
84
 
79
85
  # Dispatches a single event for `node` to all registered listeners.
80
86
  #
81
- # def dispatch_once: (Node) -> void
87
+ #: (node node) -> void
82
88
  def dispatch_once(node)
83
89
  node.accept(DispatchOnce.new(listeners))
84
90
  end
85
91
 
86
- # Dispatch enter and leave events for AliasGlobalVariableNode nodes and continue
87
- # walking the tree.
88
- def visit_alias_global_variable_node(node)
92
+ #: (AliasGlobalVariableNode node) -> void
93
+ def visit_alias_global_variable_node(node) # :nodoc:
89
94
  listeners[:on_alias_global_variable_node_enter]&.each { |listener| listener.on_alias_global_variable_node_enter(node) }
90
95
  super
91
96
  listeners[:on_alias_global_variable_node_leave]&.each { |listener| listener.on_alias_global_variable_node_leave(node) }
92
97
  end
93
98
 
94
- # Dispatch enter and leave events for AliasMethodNode nodes and continue
95
- # walking the tree.
96
- def visit_alias_method_node(node)
99
+ #: (AliasMethodNode node) -> void
100
+ def visit_alias_method_node(node) # :nodoc:
97
101
  listeners[:on_alias_method_node_enter]&.each { |listener| listener.on_alias_method_node_enter(node) }
98
102
  super
99
103
  listeners[:on_alias_method_node_leave]&.each { |listener| listener.on_alias_method_node_leave(node) }
100
104
  end
101
105
 
102
- # Dispatch enter and leave events for AlternationPatternNode nodes and continue
103
- # walking the tree.
104
- def visit_alternation_pattern_node(node)
106
+ #: (AlternationPatternNode node) -> void
107
+ def visit_alternation_pattern_node(node) # :nodoc:
105
108
  listeners[:on_alternation_pattern_node_enter]&.each { |listener| listener.on_alternation_pattern_node_enter(node) }
106
109
  super
107
110
  listeners[:on_alternation_pattern_node_leave]&.each { |listener| listener.on_alternation_pattern_node_leave(node) }
108
111
  end
109
112
 
110
- # Dispatch enter and leave events for AndNode nodes and continue
111
- # walking the tree.
112
- def visit_and_node(node)
113
+ #: (AndNode node) -> void
114
+ def visit_and_node(node) # :nodoc:
113
115
  listeners[:on_and_node_enter]&.each { |listener| listener.on_and_node_enter(node) }
114
116
  super
115
117
  listeners[:on_and_node_leave]&.each { |listener| listener.on_and_node_leave(node) }
116
118
  end
117
119
 
118
- # Dispatch enter and leave events for ArgumentsNode nodes and continue
119
- # walking the tree.
120
- def visit_arguments_node(node)
120
+ #: (ArgumentsNode node) -> void
121
+ def visit_arguments_node(node) # :nodoc:
121
122
  listeners[:on_arguments_node_enter]&.each { |listener| listener.on_arguments_node_enter(node) }
122
123
  super
123
124
  listeners[:on_arguments_node_leave]&.each { |listener| listener.on_arguments_node_leave(node) }
124
125
  end
125
126
 
126
- # Dispatch enter and leave events for ArrayNode nodes and continue
127
- # walking the tree.
128
- def visit_array_node(node)
127
+ #: (ArrayNode node) -> void
128
+ def visit_array_node(node) # :nodoc:
129
129
  listeners[:on_array_node_enter]&.each { |listener| listener.on_array_node_enter(node) }
130
130
  super
131
131
  listeners[:on_array_node_leave]&.each { |listener| listener.on_array_node_leave(node) }
132
132
  end
133
133
 
134
- # Dispatch enter and leave events for ArrayPatternNode nodes and continue
135
- # walking the tree.
136
- def visit_array_pattern_node(node)
134
+ #: (ArrayPatternNode node) -> void
135
+ def visit_array_pattern_node(node) # :nodoc:
137
136
  listeners[:on_array_pattern_node_enter]&.each { |listener| listener.on_array_pattern_node_enter(node) }
138
137
  super
139
138
  listeners[:on_array_pattern_node_leave]&.each { |listener| listener.on_array_pattern_node_leave(node) }
140
139
  end
141
140
 
142
- # Dispatch enter and leave events for AssocNode nodes and continue
143
- # walking the tree.
144
- def visit_assoc_node(node)
141
+ #: (AssocNode node) -> void
142
+ def visit_assoc_node(node) # :nodoc:
145
143
  listeners[:on_assoc_node_enter]&.each { |listener| listener.on_assoc_node_enter(node) }
146
144
  super
147
145
  listeners[:on_assoc_node_leave]&.each { |listener| listener.on_assoc_node_leave(node) }
148
146
  end
149
147
 
150
- # Dispatch enter and leave events for AssocSplatNode nodes and continue
151
- # walking the tree.
152
- def visit_assoc_splat_node(node)
148
+ #: (AssocSplatNode node) -> void
149
+ def visit_assoc_splat_node(node) # :nodoc:
153
150
  listeners[:on_assoc_splat_node_enter]&.each { |listener| listener.on_assoc_splat_node_enter(node) }
154
151
  super
155
152
  listeners[:on_assoc_splat_node_leave]&.each { |listener| listener.on_assoc_splat_node_leave(node) }
156
153
  end
157
154
 
158
- # Dispatch enter and leave events for BackReferenceReadNode nodes and continue
159
- # walking the tree.
160
- def visit_back_reference_read_node(node)
155
+ #: (BackReferenceReadNode node) -> void
156
+ def visit_back_reference_read_node(node) # :nodoc:
161
157
  listeners[:on_back_reference_read_node_enter]&.each { |listener| listener.on_back_reference_read_node_enter(node) }
162
158
  super
163
159
  listeners[:on_back_reference_read_node_leave]&.each { |listener| listener.on_back_reference_read_node_leave(node) }
164
160
  end
165
161
 
166
- # Dispatch enter and leave events for BeginNode nodes and continue
167
- # walking the tree.
168
- def visit_begin_node(node)
162
+ #: (BeginNode node) -> void
163
+ def visit_begin_node(node) # :nodoc:
169
164
  listeners[:on_begin_node_enter]&.each { |listener| listener.on_begin_node_enter(node) }
170
165
  super
171
166
  listeners[:on_begin_node_leave]&.each { |listener| listener.on_begin_node_leave(node) }
172
167
  end
173
168
 
174
- # Dispatch enter and leave events for BlockArgumentNode nodes and continue
175
- # walking the tree.
176
- def visit_block_argument_node(node)
169
+ #: (BlockArgumentNode node) -> void
170
+ def visit_block_argument_node(node) # :nodoc:
177
171
  listeners[:on_block_argument_node_enter]&.each { |listener| listener.on_block_argument_node_enter(node) }
178
172
  super
179
173
  listeners[:on_block_argument_node_leave]&.each { |listener| listener.on_block_argument_node_leave(node) }
180
174
  end
181
175
 
182
- # Dispatch enter and leave events for BlockLocalVariableNode nodes and continue
183
- # walking the tree.
184
- def visit_block_local_variable_node(node)
176
+ #: (BlockLocalVariableNode node) -> void
177
+ def visit_block_local_variable_node(node) # :nodoc:
185
178
  listeners[:on_block_local_variable_node_enter]&.each { |listener| listener.on_block_local_variable_node_enter(node) }
186
179
  super
187
180
  listeners[:on_block_local_variable_node_leave]&.each { |listener| listener.on_block_local_variable_node_leave(node) }
188
181
  end
189
182
 
190
- # Dispatch enter and leave events for BlockNode nodes and continue
191
- # walking the tree.
192
- def visit_block_node(node)
183
+ #: (BlockNode node) -> void
184
+ def visit_block_node(node) # :nodoc:
193
185
  listeners[:on_block_node_enter]&.each { |listener| listener.on_block_node_enter(node) }
194
186
  super
195
187
  listeners[:on_block_node_leave]&.each { |listener| listener.on_block_node_leave(node) }
196
188
  end
197
189
 
198
- # Dispatch enter and leave events for BlockParameterNode nodes and continue
199
- # walking the tree.
200
- def visit_block_parameter_node(node)
190
+ #: (BlockParameterNode node) -> void
191
+ def visit_block_parameter_node(node) # :nodoc:
201
192
  listeners[:on_block_parameter_node_enter]&.each { |listener| listener.on_block_parameter_node_enter(node) }
202
193
  super
203
194
  listeners[:on_block_parameter_node_leave]&.each { |listener| listener.on_block_parameter_node_leave(node) }
204
195
  end
205
196
 
206
- # Dispatch enter and leave events for BlockParametersNode nodes and continue
207
- # walking the tree.
208
- def visit_block_parameters_node(node)
197
+ #: (BlockParametersNode node) -> void
198
+ def visit_block_parameters_node(node) # :nodoc:
209
199
  listeners[:on_block_parameters_node_enter]&.each { |listener| listener.on_block_parameters_node_enter(node) }
210
200
  super
211
201
  listeners[:on_block_parameters_node_leave]&.each { |listener| listener.on_block_parameters_node_leave(node) }
212
202
  end
213
203
 
214
- # Dispatch enter and leave events for BreakNode nodes and continue
215
- # walking the tree.
216
- def visit_break_node(node)
204
+ #: (BreakNode node) -> void
205
+ def visit_break_node(node) # :nodoc:
217
206
  listeners[:on_break_node_enter]&.each { |listener| listener.on_break_node_enter(node) }
218
207
  super
219
208
  listeners[:on_break_node_leave]&.each { |listener| listener.on_break_node_leave(node) }
220
209
  end
221
210
 
222
- # Dispatch enter and leave events for CallAndWriteNode nodes and continue
223
- # walking the tree.
224
- def visit_call_and_write_node(node)
211
+ #: (CallAndWriteNode node) -> void
212
+ def visit_call_and_write_node(node) # :nodoc:
225
213
  listeners[:on_call_and_write_node_enter]&.each { |listener| listener.on_call_and_write_node_enter(node) }
226
214
  super
227
215
  listeners[:on_call_and_write_node_leave]&.each { |listener| listener.on_call_and_write_node_leave(node) }
228
216
  end
229
217
 
230
- # Dispatch enter and leave events for CallNode nodes and continue
231
- # walking the tree.
232
- def visit_call_node(node)
218
+ #: (CallNode node) -> void
219
+ def visit_call_node(node) # :nodoc:
233
220
  listeners[:on_call_node_enter]&.each { |listener| listener.on_call_node_enter(node) }
234
221
  super
235
222
  listeners[:on_call_node_leave]&.each { |listener| listener.on_call_node_leave(node) }
236
223
  end
237
224
 
238
- # Dispatch enter and leave events for CallOperatorWriteNode nodes and continue
239
- # walking the tree.
240
- def visit_call_operator_write_node(node)
225
+ #: (CallOperatorWriteNode node) -> void
226
+ def visit_call_operator_write_node(node) # :nodoc:
241
227
  listeners[:on_call_operator_write_node_enter]&.each { |listener| listener.on_call_operator_write_node_enter(node) }
242
228
  super
243
229
  listeners[:on_call_operator_write_node_leave]&.each { |listener| listener.on_call_operator_write_node_leave(node) }
244
230
  end
245
231
 
246
- # Dispatch enter and leave events for CallOrWriteNode nodes and continue
247
- # walking the tree.
248
- def visit_call_or_write_node(node)
232
+ #: (CallOrWriteNode node) -> void
233
+ def visit_call_or_write_node(node) # :nodoc:
249
234
  listeners[:on_call_or_write_node_enter]&.each { |listener| listener.on_call_or_write_node_enter(node) }
250
235
  super
251
236
  listeners[:on_call_or_write_node_leave]&.each { |listener| listener.on_call_or_write_node_leave(node) }
252
237
  end
253
238
 
254
- # Dispatch enter and leave events for CallTargetNode nodes and continue
255
- # walking the tree.
256
- def visit_call_target_node(node)
239
+ #: (CallTargetNode node) -> void
240
+ def visit_call_target_node(node) # :nodoc:
257
241
  listeners[:on_call_target_node_enter]&.each { |listener| listener.on_call_target_node_enter(node) }
258
242
  super
259
243
  listeners[:on_call_target_node_leave]&.each { |listener| listener.on_call_target_node_leave(node) }
260
244
  end
261
245
 
262
- # Dispatch enter and leave events for CapturePatternNode nodes and continue
263
- # walking the tree.
264
- def visit_capture_pattern_node(node)
246
+ #: (CapturePatternNode node) -> void
247
+ def visit_capture_pattern_node(node) # :nodoc:
265
248
  listeners[:on_capture_pattern_node_enter]&.each { |listener| listener.on_capture_pattern_node_enter(node) }
266
249
  super
267
250
  listeners[:on_capture_pattern_node_leave]&.each { |listener| listener.on_capture_pattern_node_leave(node) }
268
251
  end
269
252
 
270
- # Dispatch enter and leave events for CaseMatchNode nodes and continue
271
- # walking the tree.
272
- def visit_case_match_node(node)
253
+ #: (CaseMatchNode node) -> void
254
+ def visit_case_match_node(node) # :nodoc:
273
255
  listeners[:on_case_match_node_enter]&.each { |listener| listener.on_case_match_node_enter(node) }
274
256
  super
275
257
  listeners[:on_case_match_node_leave]&.each { |listener| listener.on_case_match_node_leave(node) }
276
258
  end
277
259
 
278
- # Dispatch enter and leave events for CaseNode nodes and continue
279
- # walking the tree.
280
- def visit_case_node(node)
260
+ #: (CaseNode node) -> void
261
+ def visit_case_node(node) # :nodoc:
281
262
  listeners[:on_case_node_enter]&.each { |listener| listener.on_case_node_enter(node) }
282
263
  super
283
264
  listeners[:on_case_node_leave]&.each { |listener| listener.on_case_node_leave(node) }
284
265
  end
285
266
 
286
- # Dispatch enter and leave events for ClassNode nodes and continue
287
- # walking the tree.
288
- def visit_class_node(node)
267
+ #: (ClassNode node) -> void
268
+ def visit_class_node(node) # :nodoc:
289
269
  listeners[:on_class_node_enter]&.each { |listener| listener.on_class_node_enter(node) }
290
270
  super
291
271
  listeners[:on_class_node_leave]&.each { |listener| listener.on_class_node_leave(node) }
292
272
  end
293
273
 
294
- # Dispatch enter and leave events for ClassVariableAndWriteNode nodes and continue
295
- # walking the tree.
296
- def visit_class_variable_and_write_node(node)
274
+ #: (ClassVariableAndWriteNode node) -> void
275
+ def visit_class_variable_and_write_node(node) # :nodoc:
297
276
  listeners[:on_class_variable_and_write_node_enter]&.each { |listener| listener.on_class_variable_and_write_node_enter(node) }
298
277
  super
299
278
  listeners[:on_class_variable_and_write_node_leave]&.each { |listener| listener.on_class_variable_and_write_node_leave(node) }
300
279
  end
301
280
 
302
- # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes and continue
303
- # walking the tree.
304
- def visit_class_variable_operator_write_node(node)
281
+ #: (ClassVariableOperatorWriteNode node) -> void
282
+ def visit_class_variable_operator_write_node(node) # :nodoc:
305
283
  listeners[:on_class_variable_operator_write_node_enter]&.each { |listener| listener.on_class_variable_operator_write_node_enter(node) }
306
284
  super
307
285
  listeners[:on_class_variable_operator_write_node_leave]&.each { |listener| listener.on_class_variable_operator_write_node_leave(node) }
308
286
  end
309
287
 
310
- # Dispatch enter and leave events for ClassVariableOrWriteNode nodes and continue
311
- # walking the tree.
312
- def visit_class_variable_or_write_node(node)
288
+ #: (ClassVariableOrWriteNode node) -> void
289
+ def visit_class_variable_or_write_node(node) # :nodoc:
313
290
  listeners[:on_class_variable_or_write_node_enter]&.each { |listener| listener.on_class_variable_or_write_node_enter(node) }
314
291
  super
315
292
  listeners[:on_class_variable_or_write_node_leave]&.each { |listener| listener.on_class_variable_or_write_node_leave(node) }
316
293
  end
317
294
 
318
- # Dispatch enter and leave events for ClassVariableReadNode nodes and continue
319
- # walking the tree.
320
- def visit_class_variable_read_node(node)
295
+ #: (ClassVariableReadNode node) -> void
296
+ def visit_class_variable_read_node(node) # :nodoc:
321
297
  listeners[:on_class_variable_read_node_enter]&.each { |listener| listener.on_class_variable_read_node_enter(node) }
322
298
  super
323
299
  listeners[:on_class_variable_read_node_leave]&.each { |listener| listener.on_class_variable_read_node_leave(node) }
324
300
  end
325
301
 
326
- # Dispatch enter and leave events for ClassVariableTargetNode nodes and continue
327
- # walking the tree.
328
- def visit_class_variable_target_node(node)
302
+ #: (ClassVariableTargetNode node) -> void
303
+ def visit_class_variable_target_node(node) # :nodoc:
329
304
  listeners[:on_class_variable_target_node_enter]&.each { |listener| listener.on_class_variable_target_node_enter(node) }
330
305
  super
331
306
  listeners[:on_class_variable_target_node_leave]&.each { |listener| listener.on_class_variable_target_node_leave(node) }
332
307
  end
333
308
 
334
- # Dispatch enter and leave events for ClassVariableWriteNode nodes and continue
335
- # walking the tree.
336
- def visit_class_variable_write_node(node)
309
+ #: (ClassVariableWriteNode node) -> void
310
+ def visit_class_variable_write_node(node) # :nodoc:
337
311
  listeners[:on_class_variable_write_node_enter]&.each { |listener| listener.on_class_variable_write_node_enter(node) }
338
312
  super
339
313
  listeners[:on_class_variable_write_node_leave]&.each { |listener| listener.on_class_variable_write_node_leave(node) }
340
314
  end
341
315
 
342
- # Dispatch enter and leave events for ConstantAndWriteNode nodes and continue
343
- # walking the tree.
344
- def visit_constant_and_write_node(node)
316
+ #: (ConstantAndWriteNode node) -> void
317
+ def visit_constant_and_write_node(node) # :nodoc:
345
318
  listeners[:on_constant_and_write_node_enter]&.each { |listener| listener.on_constant_and_write_node_enter(node) }
346
319
  super
347
320
  listeners[:on_constant_and_write_node_leave]&.each { |listener| listener.on_constant_and_write_node_leave(node) }
348
321
  end
349
322
 
350
- # Dispatch enter and leave events for ConstantOperatorWriteNode nodes and continue
351
- # walking the tree.
352
- def visit_constant_operator_write_node(node)
323
+ #: (ConstantOperatorWriteNode node) -> void
324
+ def visit_constant_operator_write_node(node) # :nodoc:
353
325
  listeners[:on_constant_operator_write_node_enter]&.each { |listener| listener.on_constant_operator_write_node_enter(node) }
354
326
  super
355
327
  listeners[:on_constant_operator_write_node_leave]&.each { |listener| listener.on_constant_operator_write_node_leave(node) }
356
328
  end
357
329
 
358
- # Dispatch enter and leave events for ConstantOrWriteNode nodes and continue
359
- # walking the tree.
360
- def visit_constant_or_write_node(node)
330
+ #: (ConstantOrWriteNode node) -> void
331
+ def visit_constant_or_write_node(node) # :nodoc:
361
332
  listeners[:on_constant_or_write_node_enter]&.each { |listener| listener.on_constant_or_write_node_enter(node) }
362
333
  super
363
334
  listeners[:on_constant_or_write_node_leave]&.each { |listener| listener.on_constant_or_write_node_leave(node) }
364
335
  end
365
336
 
366
- # Dispatch enter and leave events for ConstantPathAndWriteNode nodes and continue
367
- # walking the tree.
368
- def visit_constant_path_and_write_node(node)
337
+ #: (ConstantPathAndWriteNode node) -> void
338
+ def visit_constant_path_and_write_node(node) # :nodoc:
369
339
  listeners[:on_constant_path_and_write_node_enter]&.each { |listener| listener.on_constant_path_and_write_node_enter(node) }
370
340
  super
371
341
  listeners[:on_constant_path_and_write_node_leave]&.each { |listener| listener.on_constant_path_and_write_node_leave(node) }
372
342
  end
373
343
 
374
- # Dispatch enter and leave events for ConstantPathNode nodes and continue
375
- # walking the tree.
376
- def visit_constant_path_node(node)
344
+ #: (ConstantPathNode node) -> void
345
+ def visit_constant_path_node(node) # :nodoc:
377
346
  listeners[:on_constant_path_node_enter]&.each { |listener| listener.on_constant_path_node_enter(node) }
378
347
  super
379
348
  listeners[:on_constant_path_node_leave]&.each { |listener| listener.on_constant_path_node_leave(node) }
380
349
  end
381
350
 
382
- # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes and continue
383
- # walking the tree.
384
- def visit_constant_path_operator_write_node(node)
351
+ #: (ConstantPathOperatorWriteNode node) -> void
352
+ def visit_constant_path_operator_write_node(node) # :nodoc:
385
353
  listeners[:on_constant_path_operator_write_node_enter]&.each { |listener| listener.on_constant_path_operator_write_node_enter(node) }
386
354
  super
387
355
  listeners[:on_constant_path_operator_write_node_leave]&.each { |listener| listener.on_constant_path_operator_write_node_leave(node) }
388
356
  end
389
357
 
390
- # Dispatch enter and leave events for ConstantPathOrWriteNode nodes and continue
391
- # walking the tree.
392
- def visit_constant_path_or_write_node(node)
358
+ #: (ConstantPathOrWriteNode node) -> void
359
+ def visit_constant_path_or_write_node(node) # :nodoc:
393
360
  listeners[:on_constant_path_or_write_node_enter]&.each { |listener| listener.on_constant_path_or_write_node_enter(node) }
394
361
  super
395
362
  listeners[:on_constant_path_or_write_node_leave]&.each { |listener| listener.on_constant_path_or_write_node_leave(node) }
396
363
  end
397
364
 
398
- # Dispatch enter and leave events for ConstantPathTargetNode nodes and continue
399
- # walking the tree.
400
- def visit_constant_path_target_node(node)
365
+ #: (ConstantPathTargetNode node) -> void
366
+ def visit_constant_path_target_node(node) # :nodoc:
401
367
  listeners[:on_constant_path_target_node_enter]&.each { |listener| listener.on_constant_path_target_node_enter(node) }
402
368
  super
403
369
  listeners[:on_constant_path_target_node_leave]&.each { |listener| listener.on_constant_path_target_node_leave(node) }
404
370
  end
405
371
 
406
- # Dispatch enter and leave events for ConstantPathWriteNode nodes and continue
407
- # walking the tree.
408
- def visit_constant_path_write_node(node)
372
+ #: (ConstantPathWriteNode node) -> void
373
+ def visit_constant_path_write_node(node) # :nodoc:
409
374
  listeners[:on_constant_path_write_node_enter]&.each { |listener| listener.on_constant_path_write_node_enter(node) }
410
375
  super
411
376
  listeners[:on_constant_path_write_node_leave]&.each { |listener| listener.on_constant_path_write_node_leave(node) }
412
377
  end
413
378
 
414
- # Dispatch enter and leave events for ConstantReadNode nodes and continue
415
- # walking the tree.
416
- def visit_constant_read_node(node)
379
+ #: (ConstantReadNode node) -> void
380
+ def visit_constant_read_node(node) # :nodoc:
417
381
  listeners[:on_constant_read_node_enter]&.each { |listener| listener.on_constant_read_node_enter(node) }
418
382
  super
419
383
  listeners[:on_constant_read_node_leave]&.each { |listener| listener.on_constant_read_node_leave(node) }
420
384
  end
421
385
 
422
- # Dispatch enter and leave events for ConstantTargetNode nodes and continue
423
- # walking the tree.
424
- def visit_constant_target_node(node)
386
+ #: (ConstantTargetNode node) -> void
387
+ def visit_constant_target_node(node) # :nodoc:
425
388
  listeners[:on_constant_target_node_enter]&.each { |listener| listener.on_constant_target_node_enter(node) }
426
389
  super
427
390
  listeners[:on_constant_target_node_leave]&.each { |listener| listener.on_constant_target_node_leave(node) }
428
391
  end
429
392
 
430
- # Dispatch enter and leave events for ConstantWriteNode nodes and continue
431
- # walking the tree.
432
- def visit_constant_write_node(node)
393
+ #: (ConstantWriteNode node) -> void
394
+ def visit_constant_write_node(node) # :nodoc:
433
395
  listeners[:on_constant_write_node_enter]&.each { |listener| listener.on_constant_write_node_enter(node) }
434
396
  super
435
397
  listeners[:on_constant_write_node_leave]&.each { |listener| listener.on_constant_write_node_leave(node) }
436
398
  end
437
399
 
438
- # Dispatch enter and leave events for DefNode nodes and continue
439
- # walking the tree.
440
- def visit_def_node(node)
400
+ #: (DefNode node) -> void
401
+ def visit_def_node(node) # :nodoc:
441
402
  listeners[:on_def_node_enter]&.each { |listener| listener.on_def_node_enter(node) }
442
403
  super
443
404
  listeners[:on_def_node_leave]&.each { |listener| listener.on_def_node_leave(node) }
444
405
  end
445
406
 
446
- # Dispatch enter and leave events for DefinedNode nodes and continue
447
- # walking the tree.
448
- def visit_defined_node(node)
407
+ #: (DefinedNode node) -> void
408
+ def visit_defined_node(node) # :nodoc:
449
409
  listeners[:on_defined_node_enter]&.each { |listener| listener.on_defined_node_enter(node) }
450
410
  super
451
411
  listeners[:on_defined_node_leave]&.each { |listener| listener.on_defined_node_leave(node) }
452
412
  end
453
413
 
454
- # Dispatch enter and leave events for ElseNode nodes and continue
455
- # walking the tree.
456
- def visit_else_node(node)
414
+ #: (ElseNode node) -> void
415
+ def visit_else_node(node) # :nodoc:
457
416
  listeners[:on_else_node_enter]&.each { |listener| listener.on_else_node_enter(node) }
458
417
  super
459
418
  listeners[:on_else_node_leave]&.each { |listener| listener.on_else_node_leave(node) }
460
419
  end
461
420
 
462
- # Dispatch enter and leave events for EmbeddedStatementsNode nodes and continue
463
- # walking the tree.
464
- def visit_embedded_statements_node(node)
421
+ #: (EmbeddedStatementsNode node) -> void
422
+ def visit_embedded_statements_node(node) # :nodoc:
465
423
  listeners[:on_embedded_statements_node_enter]&.each { |listener| listener.on_embedded_statements_node_enter(node) }
466
424
  super
467
425
  listeners[:on_embedded_statements_node_leave]&.each { |listener| listener.on_embedded_statements_node_leave(node) }
468
426
  end
469
427
 
470
- # Dispatch enter and leave events for EmbeddedVariableNode nodes and continue
471
- # walking the tree.
472
- def visit_embedded_variable_node(node)
428
+ #: (EmbeddedVariableNode node) -> void
429
+ def visit_embedded_variable_node(node) # :nodoc:
473
430
  listeners[:on_embedded_variable_node_enter]&.each { |listener| listener.on_embedded_variable_node_enter(node) }
474
431
  super
475
432
  listeners[:on_embedded_variable_node_leave]&.each { |listener| listener.on_embedded_variable_node_leave(node) }
476
433
  end
477
434
 
478
- # Dispatch enter and leave events for EnsureNode nodes and continue
479
- # walking the tree.
480
- def visit_ensure_node(node)
435
+ #: (EnsureNode node) -> void
436
+ def visit_ensure_node(node) # :nodoc:
481
437
  listeners[:on_ensure_node_enter]&.each { |listener| listener.on_ensure_node_enter(node) }
482
438
  super
483
439
  listeners[:on_ensure_node_leave]&.each { |listener| listener.on_ensure_node_leave(node) }
484
440
  end
485
441
 
486
- # Dispatch enter and leave events for FalseNode nodes and continue
487
- # walking the tree.
488
- def visit_false_node(node)
442
+ #: (ErrorRecoveryNode node) -> void
443
+ def visit_error_recovery_node(node) # :nodoc:
444
+ listeners[:on_error_recovery_node_enter]&.each { |listener| listener.on_error_recovery_node_enter(node) }
445
+ super
446
+ listeners[:on_error_recovery_node_leave]&.each { |listener| listener.on_error_recovery_node_leave(node) }
447
+ end
448
+
449
+ #: (FalseNode node) -> void
450
+ def visit_false_node(node) # :nodoc:
489
451
  listeners[:on_false_node_enter]&.each { |listener| listener.on_false_node_enter(node) }
490
452
  super
491
453
  listeners[:on_false_node_leave]&.each { |listener| listener.on_false_node_leave(node) }
492
454
  end
493
455
 
494
- # Dispatch enter and leave events for FindPatternNode nodes and continue
495
- # walking the tree.
496
- def visit_find_pattern_node(node)
456
+ #: (FindPatternNode node) -> void
457
+ def visit_find_pattern_node(node) # :nodoc:
497
458
  listeners[:on_find_pattern_node_enter]&.each { |listener| listener.on_find_pattern_node_enter(node) }
498
459
  super
499
460
  listeners[:on_find_pattern_node_leave]&.each { |listener| listener.on_find_pattern_node_leave(node) }
500
461
  end
501
462
 
502
- # Dispatch enter and leave events for FlipFlopNode nodes and continue
503
- # walking the tree.
504
- def visit_flip_flop_node(node)
463
+ #: (FlipFlopNode node) -> void
464
+ def visit_flip_flop_node(node) # :nodoc:
505
465
  listeners[:on_flip_flop_node_enter]&.each { |listener| listener.on_flip_flop_node_enter(node) }
506
466
  super
507
467
  listeners[:on_flip_flop_node_leave]&.each { |listener| listener.on_flip_flop_node_leave(node) }
508
468
  end
509
469
 
510
- # Dispatch enter and leave events for FloatNode nodes and continue
511
- # walking the tree.
512
- def visit_float_node(node)
470
+ #: (FloatNode node) -> void
471
+ def visit_float_node(node) # :nodoc:
513
472
  listeners[:on_float_node_enter]&.each { |listener| listener.on_float_node_enter(node) }
514
473
  super
515
474
  listeners[:on_float_node_leave]&.each { |listener| listener.on_float_node_leave(node) }
516
475
  end
517
476
 
518
- # Dispatch enter and leave events for ForNode nodes and continue
519
- # walking the tree.
520
- def visit_for_node(node)
477
+ #: (ForNode node) -> void
478
+ def visit_for_node(node) # :nodoc:
521
479
  listeners[:on_for_node_enter]&.each { |listener| listener.on_for_node_enter(node) }
522
480
  super
523
481
  listeners[:on_for_node_leave]&.each { |listener| listener.on_for_node_leave(node) }
524
482
  end
525
483
 
526
- # Dispatch enter and leave events for ForwardingArgumentsNode nodes and continue
527
- # walking the tree.
528
- def visit_forwarding_arguments_node(node)
484
+ #: (ForwardingArgumentsNode node) -> void
485
+ def visit_forwarding_arguments_node(node) # :nodoc:
529
486
  listeners[:on_forwarding_arguments_node_enter]&.each { |listener| listener.on_forwarding_arguments_node_enter(node) }
530
487
  super
531
488
  listeners[:on_forwarding_arguments_node_leave]&.each { |listener| listener.on_forwarding_arguments_node_leave(node) }
532
489
  end
533
490
 
534
- # Dispatch enter and leave events for ForwardingParameterNode nodes and continue
535
- # walking the tree.
536
- def visit_forwarding_parameter_node(node)
491
+ #: (ForwardingParameterNode node) -> void
492
+ def visit_forwarding_parameter_node(node) # :nodoc:
537
493
  listeners[:on_forwarding_parameter_node_enter]&.each { |listener| listener.on_forwarding_parameter_node_enter(node) }
538
494
  super
539
495
  listeners[:on_forwarding_parameter_node_leave]&.each { |listener| listener.on_forwarding_parameter_node_leave(node) }
540
496
  end
541
497
 
542
- # Dispatch enter and leave events for ForwardingSuperNode nodes and continue
543
- # walking the tree.
544
- def visit_forwarding_super_node(node)
498
+ #: (ForwardingSuperNode node) -> void
499
+ def visit_forwarding_super_node(node) # :nodoc:
545
500
  listeners[:on_forwarding_super_node_enter]&.each { |listener| listener.on_forwarding_super_node_enter(node) }
546
501
  super
547
502
  listeners[:on_forwarding_super_node_leave]&.each { |listener| listener.on_forwarding_super_node_leave(node) }
548
503
  end
549
504
 
550
- # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes and continue
551
- # walking the tree.
552
- def visit_global_variable_and_write_node(node)
505
+ #: (GlobalVariableAndWriteNode node) -> void
506
+ def visit_global_variable_and_write_node(node) # :nodoc:
553
507
  listeners[:on_global_variable_and_write_node_enter]&.each { |listener| listener.on_global_variable_and_write_node_enter(node) }
554
508
  super
555
509
  listeners[:on_global_variable_and_write_node_leave]&.each { |listener| listener.on_global_variable_and_write_node_leave(node) }
556
510
  end
557
511
 
558
- # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes and continue
559
- # walking the tree.
560
- def visit_global_variable_operator_write_node(node)
512
+ #: (GlobalVariableOperatorWriteNode node) -> void
513
+ def visit_global_variable_operator_write_node(node) # :nodoc:
561
514
  listeners[:on_global_variable_operator_write_node_enter]&.each { |listener| listener.on_global_variable_operator_write_node_enter(node) }
562
515
  super
563
516
  listeners[:on_global_variable_operator_write_node_leave]&.each { |listener| listener.on_global_variable_operator_write_node_leave(node) }
564
517
  end
565
518
 
566
- # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes and continue
567
- # walking the tree.
568
- def visit_global_variable_or_write_node(node)
519
+ #: (GlobalVariableOrWriteNode node) -> void
520
+ def visit_global_variable_or_write_node(node) # :nodoc:
569
521
  listeners[:on_global_variable_or_write_node_enter]&.each { |listener| listener.on_global_variable_or_write_node_enter(node) }
570
522
  super
571
523
  listeners[:on_global_variable_or_write_node_leave]&.each { |listener| listener.on_global_variable_or_write_node_leave(node) }
572
524
  end
573
525
 
574
- # Dispatch enter and leave events for GlobalVariableReadNode nodes and continue
575
- # walking the tree.
576
- def visit_global_variable_read_node(node)
526
+ #: (GlobalVariableReadNode node) -> void
527
+ def visit_global_variable_read_node(node) # :nodoc:
577
528
  listeners[:on_global_variable_read_node_enter]&.each { |listener| listener.on_global_variable_read_node_enter(node) }
578
529
  super
579
530
  listeners[:on_global_variable_read_node_leave]&.each { |listener| listener.on_global_variable_read_node_leave(node) }
580
531
  end
581
532
 
582
- # Dispatch enter and leave events for GlobalVariableTargetNode nodes and continue
583
- # walking the tree.
584
- def visit_global_variable_target_node(node)
533
+ #: (GlobalVariableTargetNode node) -> void
534
+ def visit_global_variable_target_node(node) # :nodoc:
585
535
  listeners[:on_global_variable_target_node_enter]&.each { |listener| listener.on_global_variable_target_node_enter(node) }
586
536
  super
587
537
  listeners[:on_global_variable_target_node_leave]&.each { |listener| listener.on_global_variable_target_node_leave(node) }
588
538
  end
589
539
 
590
- # Dispatch enter and leave events for GlobalVariableWriteNode nodes and continue
591
- # walking the tree.
592
- def visit_global_variable_write_node(node)
540
+ #: (GlobalVariableWriteNode node) -> void
541
+ def visit_global_variable_write_node(node) # :nodoc:
593
542
  listeners[:on_global_variable_write_node_enter]&.each { |listener| listener.on_global_variable_write_node_enter(node) }
594
543
  super
595
544
  listeners[:on_global_variable_write_node_leave]&.each { |listener| listener.on_global_variable_write_node_leave(node) }
596
545
  end
597
546
 
598
- # Dispatch enter and leave events for HashNode nodes and continue
599
- # walking the tree.
600
- def visit_hash_node(node)
547
+ #: (HashNode node) -> void
548
+ def visit_hash_node(node) # :nodoc:
601
549
  listeners[:on_hash_node_enter]&.each { |listener| listener.on_hash_node_enter(node) }
602
550
  super
603
551
  listeners[:on_hash_node_leave]&.each { |listener| listener.on_hash_node_leave(node) }
604
552
  end
605
553
 
606
- # Dispatch enter and leave events for HashPatternNode nodes and continue
607
- # walking the tree.
608
- def visit_hash_pattern_node(node)
554
+ #: (HashPatternNode node) -> void
555
+ def visit_hash_pattern_node(node) # :nodoc:
609
556
  listeners[:on_hash_pattern_node_enter]&.each { |listener| listener.on_hash_pattern_node_enter(node) }
610
557
  super
611
558
  listeners[:on_hash_pattern_node_leave]&.each { |listener| listener.on_hash_pattern_node_leave(node) }
612
559
  end
613
560
 
614
- # Dispatch enter and leave events for IfNode nodes and continue
615
- # walking the tree.
616
- def visit_if_node(node)
561
+ #: (IfNode node) -> void
562
+ def visit_if_node(node) # :nodoc:
617
563
  listeners[:on_if_node_enter]&.each { |listener| listener.on_if_node_enter(node) }
618
564
  super
619
565
  listeners[:on_if_node_leave]&.each { |listener| listener.on_if_node_leave(node) }
620
566
  end
621
567
 
622
- # Dispatch enter and leave events for ImaginaryNode nodes and continue
623
- # walking the tree.
624
- def visit_imaginary_node(node)
568
+ #: (ImaginaryNode node) -> void
569
+ def visit_imaginary_node(node) # :nodoc:
625
570
  listeners[:on_imaginary_node_enter]&.each { |listener| listener.on_imaginary_node_enter(node) }
626
571
  super
627
572
  listeners[:on_imaginary_node_leave]&.each { |listener| listener.on_imaginary_node_leave(node) }
628
573
  end
629
574
 
630
- # Dispatch enter and leave events for ImplicitNode nodes and continue
631
- # walking the tree.
632
- def visit_implicit_node(node)
575
+ #: (ImplicitNode node) -> void
576
+ def visit_implicit_node(node) # :nodoc:
633
577
  listeners[:on_implicit_node_enter]&.each { |listener| listener.on_implicit_node_enter(node) }
634
578
  super
635
579
  listeners[:on_implicit_node_leave]&.each { |listener| listener.on_implicit_node_leave(node) }
636
580
  end
637
581
 
638
- # Dispatch enter and leave events for ImplicitRestNode nodes and continue
639
- # walking the tree.
640
- def visit_implicit_rest_node(node)
582
+ #: (ImplicitRestNode node) -> void
583
+ def visit_implicit_rest_node(node) # :nodoc:
641
584
  listeners[:on_implicit_rest_node_enter]&.each { |listener| listener.on_implicit_rest_node_enter(node) }
642
585
  super
643
586
  listeners[:on_implicit_rest_node_leave]&.each { |listener| listener.on_implicit_rest_node_leave(node) }
644
587
  end
645
588
 
646
- # Dispatch enter and leave events for InNode nodes and continue
647
- # walking the tree.
648
- def visit_in_node(node)
589
+ #: (InNode node) -> void
590
+ def visit_in_node(node) # :nodoc:
649
591
  listeners[:on_in_node_enter]&.each { |listener| listener.on_in_node_enter(node) }
650
592
  super
651
593
  listeners[:on_in_node_leave]&.each { |listener| listener.on_in_node_leave(node) }
652
594
  end
653
595
 
654
- # Dispatch enter and leave events for IndexAndWriteNode nodes and continue
655
- # walking the tree.
656
- def visit_index_and_write_node(node)
596
+ #: (IndexAndWriteNode node) -> void
597
+ def visit_index_and_write_node(node) # :nodoc:
657
598
  listeners[:on_index_and_write_node_enter]&.each { |listener| listener.on_index_and_write_node_enter(node) }
658
599
  super
659
600
  listeners[:on_index_and_write_node_leave]&.each { |listener| listener.on_index_and_write_node_leave(node) }
660
601
  end
661
602
 
662
- # Dispatch enter and leave events for IndexOperatorWriteNode nodes and continue
663
- # walking the tree.
664
- def visit_index_operator_write_node(node)
603
+ #: (IndexOperatorWriteNode node) -> void
604
+ def visit_index_operator_write_node(node) # :nodoc:
665
605
  listeners[:on_index_operator_write_node_enter]&.each { |listener| listener.on_index_operator_write_node_enter(node) }
666
606
  super
667
607
  listeners[:on_index_operator_write_node_leave]&.each { |listener| listener.on_index_operator_write_node_leave(node) }
668
608
  end
669
609
 
670
- # Dispatch enter and leave events for IndexOrWriteNode nodes and continue
671
- # walking the tree.
672
- def visit_index_or_write_node(node)
610
+ #: (IndexOrWriteNode node) -> void
611
+ def visit_index_or_write_node(node) # :nodoc:
673
612
  listeners[:on_index_or_write_node_enter]&.each { |listener| listener.on_index_or_write_node_enter(node) }
674
613
  super
675
614
  listeners[:on_index_or_write_node_leave]&.each { |listener| listener.on_index_or_write_node_leave(node) }
676
615
  end
677
616
 
678
- # Dispatch enter and leave events for IndexTargetNode nodes and continue
679
- # walking the tree.
680
- def visit_index_target_node(node)
617
+ #: (IndexTargetNode node) -> void
618
+ def visit_index_target_node(node) # :nodoc:
681
619
  listeners[:on_index_target_node_enter]&.each { |listener| listener.on_index_target_node_enter(node) }
682
620
  super
683
621
  listeners[:on_index_target_node_leave]&.each { |listener| listener.on_index_target_node_leave(node) }
684
622
  end
685
623
 
686
- # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes and continue
687
- # walking the tree.
688
- def visit_instance_variable_and_write_node(node)
624
+ #: (InstanceVariableAndWriteNode node) -> void
625
+ def visit_instance_variable_and_write_node(node) # :nodoc:
689
626
  listeners[:on_instance_variable_and_write_node_enter]&.each { |listener| listener.on_instance_variable_and_write_node_enter(node) }
690
627
  super
691
628
  listeners[:on_instance_variable_and_write_node_leave]&.each { |listener| listener.on_instance_variable_and_write_node_leave(node) }
692
629
  end
693
630
 
694
- # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes and continue
695
- # walking the tree.
696
- def visit_instance_variable_operator_write_node(node)
631
+ #: (InstanceVariableOperatorWriteNode node) -> void
632
+ def visit_instance_variable_operator_write_node(node) # :nodoc:
697
633
  listeners[:on_instance_variable_operator_write_node_enter]&.each { |listener| listener.on_instance_variable_operator_write_node_enter(node) }
698
634
  super
699
635
  listeners[:on_instance_variable_operator_write_node_leave]&.each { |listener| listener.on_instance_variable_operator_write_node_leave(node) }
700
636
  end
701
637
 
702
- # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes and continue
703
- # walking the tree.
704
- def visit_instance_variable_or_write_node(node)
638
+ #: (InstanceVariableOrWriteNode node) -> void
639
+ def visit_instance_variable_or_write_node(node) # :nodoc:
705
640
  listeners[:on_instance_variable_or_write_node_enter]&.each { |listener| listener.on_instance_variable_or_write_node_enter(node) }
706
641
  super
707
642
  listeners[:on_instance_variable_or_write_node_leave]&.each { |listener| listener.on_instance_variable_or_write_node_leave(node) }
708
643
  end
709
644
 
710
- # Dispatch enter and leave events for InstanceVariableReadNode nodes and continue
711
- # walking the tree.
712
- def visit_instance_variable_read_node(node)
645
+ #: (InstanceVariableReadNode node) -> void
646
+ def visit_instance_variable_read_node(node) # :nodoc:
713
647
  listeners[:on_instance_variable_read_node_enter]&.each { |listener| listener.on_instance_variable_read_node_enter(node) }
714
648
  super
715
649
  listeners[:on_instance_variable_read_node_leave]&.each { |listener| listener.on_instance_variable_read_node_leave(node) }
716
650
  end
717
651
 
718
- # Dispatch enter and leave events for InstanceVariableTargetNode nodes and continue
719
- # walking the tree.
720
- def visit_instance_variable_target_node(node)
652
+ #: (InstanceVariableTargetNode node) -> void
653
+ def visit_instance_variable_target_node(node) # :nodoc:
721
654
  listeners[:on_instance_variable_target_node_enter]&.each { |listener| listener.on_instance_variable_target_node_enter(node) }
722
655
  super
723
656
  listeners[:on_instance_variable_target_node_leave]&.each { |listener| listener.on_instance_variable_target_node_leave(node) }
724
657
  end
725
658
 
726
- # Dispatch enter and leave events for InstanceVariableWriteNode nodes and continue
727
- # walking the tree.
728
- def visit_instance_variable_write_node(node)
659
+ #: (InstanceVariableWriteNode node) -> void
660
+ def visit_instance_variable_write_node(node) # :nodoc:
729
661
  listeners[:on_instance_variable_write_node_enter]&.each { |listener| listener.on_instance_variable_write_node_enter(node) }
730
662
  super
731
663
  listeners[:on_instance_variable_write_node_leave]&.each { |listener| listener.on_instance_variable_write_node_leave(node) }
732
664
  end
733
665
 
734
- # Dispatch enter and leave events for IntegerNode nodes and continue
735
- # walking the tree.
736
- def visit_integer_node(node)
666
+ #: (IntegerNode node) -> void
667
+ def visit_integer_node(node) # :nodoc:
737
668
  listeners[:on_integer_node_enter]&.each { |listener| listener.on_integer_node_enter(node) }
738
669
  super
739
670
  listeners[:on_integer_node_leave]&.each { |listener| listener.on_integer_node_leave(node) }
740
671
  end
741
672
 
742
- # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes and continue
743
- # walking the tree.
744
- def visit_interpolated_match_last_line_node(node)
673
+ #: (InterpolatedMatchLastLineNode node) -> void
674
+ def visit_interpolated_match_last_line_node(node) # :nodoc:
745
675
  listeners[:on_interpolated_match_last_line_node_enter]&.each { |listener| listener.on_interpolated_match_last_line_node_enter(node) }
746
676
  super
747
677
  listeners[:on_interpolated_match_last_line_node_leave]&.each { |listener| listener.on_interpolated_match_last_line_node_leave(node) }
748
678
  end
749
679
 
750
- # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes and continue
751
- # walking the tree.
752
- def visit_interpolated_regular_expression_node(node)
680
+ #: (InterpolatedRegularExpressionNode node) -> void
681
+ def visit_interpolated_regular_expression_node(node) # :nodoc:
753
682
  listeners[:on_interpolated_regular_expression_node_enter]&.each { |listener| listener.on_interpolated_regular_expression_node_enter(node) }
754
683
  super
755
684
  listeners[:on_interpolated_regular_expression_node_leave]&.each { |listener| listener.on_interpolated_regular_expression_node_leave(node) }
756
685
  end
757
686
 
758
- # Dispatch enter and leave events for InterpolatedStringNode nodes and continue
759
- # walking the tree.
760
- def visit_interpolated_string_node(node)
687
+ #: (InterpolatedStringNode node) -> void
688
+ def visit_interpolated_string_node(node) # :nodoc:
761
689
  listeners[:on_interpolated_string_node_enter]&.each { |listener| listener.on_interpolated_string_node_enter(node) }
762
690
  super
763
691
  listeners[:on_interpolated_string_node_leave]&.each { |listener| listener.on_interpolated_string_node_leave(node) }
764
692
  end
765
693
 
766
- # Dispatch enter and leave events for InterpolatedSymbolNode nodes and continue
767
- # walking the tree.
768
- def visit_interpolated_symbol_node(node)
694
+ #: (InterpolatedSymbolNode node) -> void
695
+ def visit_interpolated_symbol_node(node) # :nodoc:
769
696
  listeners[:on_interpolated_symbol_node_enter]&.each { |listener| listener.on_interpolated_symbol_node_enter(node) }
770
697
  super
771
698
  listeners[:on_interpolated_symbol_node_leave]&.each { |listener| listener.on_interpolated_symbol_node_leave(node) }
772
699
  end
773
700
 
774
- # Dispatch enter and leave events for InterpolatedXStringNode nodes and continue
775
- # walking the tree.
776
- def visit_interpolated_x_string_node(node)
701
+ #: (InterpolatedXStringNode node) -> void
702
+ def visit_interpolated_x_string_node(node) # :nodoc:
777
703
  listeners[:on_interpolated_x_string_node_enter]&.each { |listener| listener.on_interpolated_x_string_node_enter(node) }
778
704
  super
779
705
  listeners[:on_interpolated_x_string_node_leave]&.each { |listener| listener.on_interpolated_x_string_node_leave(node) }
780
706
  end
781
707
 
782
- # Dispatch enter and leave events for ItLocalVariableReadNode nodes and continue
783
- # walking the tree.
784
- def visit_it_local_variable_read_node(node)
708
+ #: (ItLocalVariableReadNode node) -> void
709
+ def visit_it_local_variable_read_node(node) # :nodoc:
785
710
  listeners[:on_it_local_variable_read_node_enter]&.each { |listener| listener.on_it_local_variable_read_node_enter(node) }
786
711
  super
787
712
  listeners[:on_it_local_variable_read_node_leave]&.each { |listener| listener.on_it_local_variable_read_node_leave(node) }
788
713
  end
789
714
 
790
- # Dispatch enter and leave events for ItParametersNode nodes and continue
791
- # walking the tree.
792
- def visit_it_parameters_node(node)
715
+ #: (ItParametersNode node) -> void
716
+ def visit_it_parameters_node(node) # :nodoc:
793
717
  listeners[:on_it_parameters_node_enter]&.each { |listener| listener.on_it_parameters_node_enter(node) }
794
718
  super
795
719
  listeners[:on_it_parameters_node_leave]&.each { |listener| listener.on_it_parameters_node_leave(node) }
796
720
  end
797
721
 
798
- # Dispatch enter and leave events for KeywordHashNode nodes and continue
799
- # walking the tree.
800
- def visit_keyword_hash_node(node)
722
+ #: (KeywordHashNode node) -> void
723
+ def visit_keyword_hash_node(node) # :nodoc:
801
724
  listeners[:on_keyword_hash_node_enter]&.each { |listener| listener.on_keyword_hash_node_enter(node) }
802
725
  super
803
726
  listeners[:on_keyword_hash_node_leave]&.each { |listener| listener.on_keyword_hash_node_leave(node) }
804
727
  end
805
728
 
806
- # Dispatch enter and leave events for KeywordRestParameterNode nodes and continue
807
- # walking the tree.
808
- def visit_keyword_rest_parameter_node(node)
729
+ #: (KeywordRestParameterNode node) -> void
730
+ def visit_keyword_rest_parameter_node(node) # :nodoc:
809
731
  listeners[:on_keyword_rest_parameter_node_enter]&.each { |listener| listener.on_keyword_rest_parameter_node_enter(node) }
810
732
  super
811
733
  listeners[:on_keyword_rest_parameter_node_leave]&.each { |listener| listener.on_keyword_rest_parameter_node_leave(node) }
812
734
  end
813
735
 
814
- # Dispatch enter and leave events for LambdaNode nodes and continue
815
- # walking the tree.
816
- def visit_lambda_node(node)
736
+ #: (LambdaNode node) -> void
737
+ def visit_lambda_node(node) # :nodoc:
817
738
  listeners[:on_lambda_node_enter]&.each { |listener| listener.on_lambda_node_enter(node) }
818
739
  super
819
740
  listeners[:on_lambda_node_leave]&.each { |listener| listener.on_lambda_node_leave(node) }
820
741
  end
821
742
 
822
- # Dispatch enter and leave events for LocalVariableAndWriteNode nodes and continue
823
- # walking the tree.
824
- def visit_local_variable_and_write_node(node)
743
+ #: (LocalVariableAndWriteNode node) -> void
744
+ def visit_local_variable_and_write_node(node) # :nodoc:
825
745
  listeners[:on_local_variable_and_write_node_enter]&.each { |listener| listener.on_local_variable_and_write_node_enter(node) }
826
746
  super
827
747
  listeners[:on_local_variable_and_write_node_leave]&.each { |listener| listener.on_local_variable_and_write_node_leave(node) }
828
748
  end
829
749
 
830
- # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes and continue
831
- # walking the tree.
832
- def visit_local_variable_operator_write_node(node)
750
+ #: (LocalVariableOperatorWriteNode node) -> void
751
+ def visit_local_variable_operator_write_node(node) # :nodoc:
833
752
  listeners[:on_local_variable_operator_write_node_enter]&.each { |listener| listener.on_local_variable_operator_write_node_enter(node) }
834
753
  super
835
754
  listeners[:on_local_variable_operator_write_node_leave]&.each { |listener| listener.on_local_variable_operator_write_node_leave(node) }
836
755
  end
837
756
 
838
- # Dispatch enter and leave events for LocalVariableOrWriteNode nodes and continue
839
- # walking the tree.
840
- def visit_local_variable_or_write_node(node)
757
+ #: (LocalVariableOrWriteNode node) -> void
758
+ def visit_local_variable_or_write_node(node) # :nodoc:
841
759
  listeners[:on_local_variable_or_write_node_enter]&.each { |listener| listener.on_local_variable_or_write_node_enter(node) }
842
760
  super
843
761
  listeners[:on_local_variable_or_write_node_leave]&.each { |listener| listener.on_local_variable_or_write_node_leave(node) }
844
762
  end
845
763
 
846
- # Dispatch enter and leave events for LocalVariableReadNode nodes and continue
847
- # walking the tree.
848
- def visit_local_variable_read_node(node)
764
+ #: (LocalVariableReadNode node) -> void
765
+ def visit_local_variable_read_node(node) # :nodoc:
849
766
  listeners[:on_local_variable_read_node_enter]&.each { |listener| listener.on_local_variable_read_node_enter(node) }
850
767
  super
851
768
  listeners[:on_local_variable_read_node_leave]&.each { |listener| listener.on_local_variable_read_node_leave(node) }
852
769
  end
853
770
 
854
- # Dispatch enter and leave events for LocalVariableTargetNode nodes and continue
855
- # walking the tree.
856
- def visit_local_variable_target_node(node)
771
+ #: (LocalVariableTargetNode node) -> void
772
+ def visit_local_variable_target_node(node) # :nodoc:
857
773
  listeners[:on_local_variable_target_node_enter]&.each { |listener| listener.on_local_variable_target_node_enter(node) }
858
774
  super
859
775
  listeners[:on_local_variable_target_node_leave]&.each { |listener| listener.on_local_variable_target_node_leave(node) }
860
776
  end
861
777
 
862
- # Dispatch enter and leave events for LocalVariableWriteNode nodes and continue
863
- # walking the tree.
864
- def visit_local_variable_write_node(node)
778
+ #: (LocalVariableWriteNode node) -> void
779
+ def visit_local_variable_write_node(node) # :nodoc:
865
780
  listeners[:on_local_variable_write_node_enter]&.each { |listener| listener.on_local_variable_write_node_enter(node) }
866
781
  super
867
782
  listeners[:on_local_variable_write_node_leave]&.each { |listener| listener.on_local_variable_write_node_leave(node) }
868
783
  end
869
784
 
870
- # Dispatch enter and leave events for MatchLastLineNode nodes and continue
871
- # walking the tree.
872
- def visit_match_last_line_node(node)
785
+ #: (MatchLastLineNode node) -> void
786
+ def visit_match_last_line_node(node) # :nodoc:
873
787
  listeners[:on_match_last_line_node_enter]&.each { |listener| listener.on_match_last_line_node_enter(node) }
874
788
  super
875
789
  listeners[:on_match_last_line_node_leave]&.each { |listener| listener.on_match_last_line_node_leave(node) }
876
790
  end
877
791
 
878
- # Dispatch enter and leave events for MatchPredicateNode nodes and continue
879
- # walking the tree.
880
- def visit_match_predicate_node(node)
792
+ #: (MatchPredicateNode node) -> void
793
+ def visit_match_predicate_node(node) # :nodoc:
881
794
  listeners[:on_match_predicate_node_enter]&.each { |listener| listener.on_match_predicate_node_enter(node) }
882
795
  super
883
796
  listeners[:on_match_predicate_node_leave]&.each { |listener| listener.on_match_predicate_node_leave(node) }
884
797
  end
885
798
 
886
- # Dispatch enter and leave events for MatchRequiredNode nodes and continue
887
- # walking the tree.
888
- def visit_match_required_node(node)
799
+ #: (MatchRequiredNode node) -> void
800
+ def visit_match_required_node(node) # :nodoc:
889
801
  listeners[:on_match_required_node_enter]&.each { |listener| listener.on_match_required_node_enter(node) }
890
802
  super
891
803
  listeners[:on_match_required_node_leave]&.each { |listener| listener.on_match_required_node_leave(node) }
892
804
  end
893
805
 
894
- # Dispatch enter and leave events for MatchWriteNode nodes and continue
895
- # walking the tree.
896
- def visit_match_write_node(node)
806
+ #: (MatchWriteNode node) -> void
807
+ def visit_match_write_node(node) # :nodoc:
897
808
  listeners[:on_match_write_node_enter]&.each { |listener| listener.on_match_write_node_enter(node) }
898
809
  super
899
810
  listeners[:on_match_write_node_leave]&.each { |listener| listener.on_match_write_node_leave(node) }
900
811
  end
901
812
 
902
- # Dispatch enter and leave events for MissingNode nodes and continue
903
- # walking the tree.
904
- def visit_missing_node(node)
905
- listeners[:on_missing_node_enter]&.each { |listener| listener.on_missing_node_enter(node) }
906
- super
907
- listeners[:on_missing_node_leave]&.each { |listener| listener.on_missing_node_leave(node) }
908
- end
909
-
910
- # Dispatch enter and leave events for ModuleNode nodes and continue
911
- # walking the tree.
912
- def visit_module_node(node)
813
+ #: (ModuleNode node) -> void
814
+ def visit_module_node(node) # :nodoc:
913
815
  listeners[:on_module_node_enter]&.each { |listener| listener.on_module_node_enter(node) }
914
816
  super
915
817
  listeners[:on_module_node_leave]&.each { |listener| listener.on_module_node_leave(node) }
916
818
  end
917
819
 
918
- # Dispatch enter and leave events for MultiTargetNode nodes and continue
919
- # walking the tree.
920
- def visit_multi_target_node(node)
820
+ #: (MultiTargetNode node) -> void
821
+ def visit_multi_target_node(node) # :nodoc:
921
822
  listeners[:on_multi_target_node_enter]&.each { |listener| listener.on_multi_target_node_enter(node) }
922
823
  super
923
824
  listeners[:on_multi_target_node_leave]&.each { |listener| listener.on_multi_target_node_leave(node) }
924
825
  end
925
826
 
926
- # Dispatch enter and leave events for MultiWriteNode nodes and continue
927
- # walking the tree.
928
- def visit_multi_write_node(node)
827
+ #: (MultiWriteNode node) -> void
828
+ def visit_multi_write_node(node) # :nodoc:
929
829
  listeners[:on_multi_write_node_enter]&.each { |listener| listener.on_multi_write_node_enter(node) }
930
830
  super
931
831
  listeners[:on_multi_write_node_leave]&.each { |listener| listener.on_multi_write_node_leave(node) }
932
832
  end
933
833
 
934
- # Dispatch enter and leave events for NextNode nodes and continue
935
- # walking the tree.
936
- def visit_next_node(node)
834
+ #: (NextNode node) -> void
835
+ def visit_next_node(node) # :nodoc:
937
836
  listeners[:on_next_node_enter]&.each { |listener| listener.on_next_node_enter(node) }
938
837
  super
939
838
  listeners[:on_next_node_leave]&.each { |listener| listener.on_next_node_leave(node) }
940
839
  end
941
840
 
942
- # Dispatch enter and leave events for NilNode nodes and continue
943
- # walking the tree.
944
- def visit_nil_node(node)
841
+ #: (NilNode node) -> void
842
+ def visit_nil_node(node) # :nodoc:
945
843
  listeners[:on_nil_node_enter]&.each { |listener| listener.on_nil_node_enter(node) }
946
844
  super
947
845
  listeners[:on_nil_node_leave]&.each { |listener| listener.on_nil_node_leave(node) }
948
846
  end
949
847
 
950
- # Dispatch enter and leave events for NoKeywordsParameterNode nodes and continue
951
- # walking the tree.
952
- def visit_no_keywords_parameter_node(node)
848
+ #: (NoBlockParameterNode node) -> void
849
+ def visit_no_block_parameter_node(node) # :nodoc:
850
+ listeners[:on_no_block_parameter_node_enter]&.each { |listener| listener.on_no_block_parameter_node_enter(node) }
851
+ super
852
+ listeners[:on_no_block_parameter_node_leave]&.each { |listener| listener.on_no_block_parameter_node_leave(node) }
853
+ end
854
+
855
+ #: (NoKeywordsParameterNode node) -> void
856
+ def visit_no_keywords_parameter_node(node) # :nodoc:
953
857
  listeners[:on_no_keywords_parameter_node_enter]&.each { |listener| listener.on_no_keywords_parameter_node_enter(node) }
954
858
  super
955
859
  listeners[:on_no_keywords_parameter_node_leave]&.each { |listener| listener.on_no_keywords_parameter_node_leave(node) }
956
860
  end
957
861
 
958
- # Dispatch enter and leave events for NumberedParametersNode nodes and continue
959
- # walking the tree.
960
- def visit_numbered_parameters_node(node)
862
+ #: (NumberedParametersNode node) -> void
863
+ def visit_numbered_parameters_node(node) # :nodoc:
961
864
  listeners[:on_numbered_parameters_node_enter]&.each { |listener| listener.on_numbered_parameters_node_enter(node) }
962
865
  super
963
866
  listeners[:on_numbered_parameters_node_leave]&.each { |listener| listener.on_numbered_parameters_node_leave(node) }
964
867
  end
965
868
 
966
- # Dispatch enter and leave events for NumberedReferenceReadNode nodes and continue
967
- # walking the tree.
968
- def visit_numbered_reference_read_node(node)
869
+ #: (NumberedReferenceReadNode node) -> void
870
+ def visit_numbered_reference_read_node(node) # :nodoc:
969
871
  listeners[:on_numbered_reference_read_node_enter]&.each { |listener| listener.on_numbered_reference_read_node_enter(node) }
970
872
  super
971
873
  listeners[:on_numbered_reference_read_node_leave]&.each { |listener| listener.on_numbered_reference_read_node_leave(node) }
972
874
  end
973
875
 
974
- # Dispatch enter and leave events for OptionalKeywordParameterNode nodes and continue
975
- # walking the tree.
976
- def visit_optional_keyword_parameter_node(node)
876
+ #: (OptionalKeywordParameterNode node) -> void
877
+ def visit_optional_keyword_parameter_node(node) # :nodoc:
977
878
  listeners[:on_optional_keyword_parameter_node_enter]&.each { |listener| listener.on_optional_keyword_parameter_node_enter(node) }
978
879
  super
979
880
  listeners[:on_optional_keyword_parameter_node_leave]&.each { |listener| listener.on_optional_keyword_parameter_node_leave(node) }
980
881
  end
981
882
 
982
- # Dispatch enter and leave events for OptionalParameterNode nodes and continue
983
- # walking the tree.
984
- def visit_optional_parameter_node(node)
883
+ #: (OptionalParameterNode node) -> void
884
+ def visit_optional_parameter_node(node) # :nodoc:
985
885
  listeners[:on_optional_parameter_node_enter]&.each { |listener| listener.on_optional_parameter_node_enter(node) }
986
886
  super
987
887
  listeners[:on_optional_parameter_node_leave]&.each { |listener| listener.on_optional_parameter_node_leave(node) }
988
888
  end
989
889
 
990
- # Dispatch enter and leave events for OrNode nodes and continue
991
- # walking the tree.
992
- def visit_or_node(node)
890
+ #: (OrNode node) -> void
891
+ def visit_or_node(node) # :nodoc:
993
892
  listeners[:on_or_node_enter]&.each { |listener| listener.on_or_node_enter(node) }
994
893
  super
995
894
  listeners[:on_or_node_leave]&.each { |listener| listener.on_or_node_leave(node) }
996
895
  end
997
896
 
998
- # Dispatch enter and leave events for ParametersNode nodes and continue
999
- # walking the tree.
1000
- def visit_parameters_node(node)
897
+ #: (ParametersNode node) -> void
898
+ def visit_parameters_node(node) # :nodoc:
1001
899
  listeners[:on_parameters_node_enter]&.each { |listener| listener.on_parameters_node_enter(node) }
1002
900
  super
1003
901
  listeners[:on_parameters_node_leave]&.each { |listener| listener.on_parameters_node_leave(node) }
1004
902
  end
1005
903
 
1006
- # Dispatch enter and leave events for ParenthesesNode nodes and continue
1007
- # walking the tree.
1008
- def visit_parentheses_node(node)
904
+ #: (ParenthesesNode node) -> void
905
+ def visit_parentheses_node(node) # :nodoc:
1009
906
  listeners[:on_parentheses_node_enter]&.each { |listener| listener.on_parentheses_node_enter(node) }
1010
907
  super
1011
908
  listeners[:on_parentheses_node_leave]&.each { |listener| listener.on_parentheses_node_leave(node) }
1012
909
  end
1013
910
 
1014
- # Dispatch enter and leave events for PinnedExpressionNode nodes and continue
1015
- # walking the tree.
1016
- def visit_pinned_expression_node(node)
911
+ #: (PinnedExpressionNode node) -> void
912
+ def visit_pinned_expression_node(node) # :nodoc:
1017
913
  listeners[:on_pinned_expression_node_enter]&.each { |listener| listener.on_pinned_expression_node_enter(node) }
1018
914
  super
1019
915
  listeners[:on_pinned_expression_node_leave]&.each { |listener| listener.on_pinned_expression_node_leave(node) }
1020
916
  end
1021
917
 
1022
- # Dispatch enter and leave events for PinnedVariableNode nodes and continue
1023
- # walking the tree.
1024
- def visit_pinned_variable_node(node)
918
+ #: (PinnedVariableNode node) -> void
919
+ def visit_pinned_variable_node(node) # :nodoc:
1025
920
  listeners[:on_pinned_variable_node_enter]&.each { |listener| listener.on_pinned_variable_node_enter(node) }
1026
921
  super
1027
922
  listeners[:on_pinned_variable_node_leave]&.each { |listener| listener.on_pinned_variable_node_leave(node) }
1028
923
  end
1029
924
 
1030
- # Dispatch enter and leave events for PostExecutionNode nodes and continue
1031
- # walking the tree.
1032
- def visit_post_execution_node(node)
925
+ #: (PostExecutionNode node) -> void
926
+ def visit_post_execution_node(node) # :nodoc:
1033
927
  listeners[:on_post_execution_node_enter]&.each { |listener| listener.on_post_execution_node_enter(node) }
1034
928
  super
1035
929
  listeners[:on_post_execution_node_leave]&.each { |listener| listener.on_post_execution_node_leave(node) }
1036
930
  end
1037
931
 
1038
- # Dispatch enter and leave events for PreExecutionNode nodes and continue
1039
- # walking the tree.
1040
- def visit_pre_execution_node(node)
932
+ #: (PreExecutionNode node) -> void
933
+ def visit_pre_execution_node(node) # :nodoc:
1041
934
  listeners[:on_pre_execution_node_enter]&.each { |listener| listener.on_pre_execution_node_enter(node) }
1042
935
  super
1043
936
  listeners[:on_pre_execution_node_leave]&.each { |listener| listener.on_pre_execution_node_leave(node) }
1044
937
  end
1045
938
 
1046
- # Dispatch enter and leave events for ProgramNode nodes and continue
1047
- # walking the tree.
1048
- def visit_program_node(node)
939
+ #: (ProgramNode node) -> void
940
+ def visit_program_node(node) # :nodoc:
1049
941
  listeners[:on_program_node_enter]&.each { |listener| listener.on_program_node_enter(node) }
1050
942
  super
1051
943
  listeners[:on_program_node_leave]&.each { |listener| listener.on_program_node_leave(node) }
1052
944
  end
1053
945
 
1054
- # Dispatch enter and leave events for RangeNode nodes and continue
1055
- # walking the tree.
1056
- def visit_range_node(node)
946
+ #: (RangeNode node) -> void
947
+ def visit_range_node(node) # :nodoc:
1057
948
  listeners[:on_range_node_enter]&.each { |listener| listener.on_range_node_enter(node) }
1058
949
  super
1059
950
  listeners[:on_range_node_leave]&.each { |listener| listener.on_range_node_leave(node) }
1060
951
  end
1061
952
 
1062
- # Dispatch enter and leave events for RationalNode nodes and continue
1063
- # walking the tree.
1064
- def visit_rational_node(node)
953
+ #: (RationalNode node) -> void
954
+ def visit_rational_node(node) # :nodoc:
1065
955
  listeners[:on_rational_node_enter]&.each { |listener| listener.on_rational_node_enter(node) }
1066
956
  super
1067
957
  listeners[:on_rational_node_leave]&.each { |listener| listener.on_rational_node_leave(node) }
1068
958
  end
1069
959
 
1070
- # Dispatch enter and leave events for RedoNode nodes and continue
1071
- # walking the tree.
1072
- def visit_redo_node(node)
960
+ #: (RedoNode node) -> void
961
+ def visit_redo_node(node) # :nodoc:
1073
962
  listeners[:on_redo_node_enter]&.each { |listener| listener.on_redo_node_enter(node) }
1074
963
  super
1075
964
  listeners[:on_redo_node_leave]&.each { |listener| listener.on_redo_node_leave(node) }
1076
965
  end
1077
966
 
1078
- # Dispatch enter and leave events for RegularExpressionNode nodes and continue
1079
- # walking the tree.
1080
- def visit_regular_expression_node(node)
967
+ #: (RegularExpressionNode node) -> void
968
+ def visit_regular_expression_node(node) # :nodoc:
1081
969
  listeners[:on_regular_expression_node_enter]&.each { |listener| listener.on_regular_expression_node_enter(node) }
1082
970
  super
1083
971
  listeners[:on_regular_expression_node_leave]&.each { |listener| listener.on_regular_expression_node_leave(node) }
1084
972
  end
1085
973
 
1086
- # Dispatch enter and leave events for RequiredKeywordParameterNode nodes and continue
1087
- # walking the tree.
1088
- def visit_required_keyword_parameter_node(node)
974
+ #: (RequiredKeywordParameterNode node) -> void
975
+ def visit_required_keyword_parameter_node(node) # :nodoc:
1089
976
  listeners[:on_required_keyword_parameter_node_enter]&.each { |listener| listener.on_required_keyword_parameter_node_enter(node) }
1090
977
  super
1091
978
  listeners[:on_required_keyword_parameter_node_leave]&.each { |listener| listener.on_required_keyword_parameter_node_leave(node) }
1092
979
  end
1093
980
 
1094
- # Dispatch enter and leave events for RequiredParameterNode nodes and continue
1095
- # walking the tree.
1096
- def visit_required_parameter_node(node)
981
+ #: (RequiredParameterNode node) -> void
982
+ def visit_required_parameter_node(node) # :nodoc:
1097
983
  listeners[:on_required_parameter_node_enter]&.each { |listener| listener.on_required_parameter_node_enter(node) }
1098
984
  super
1099
985
  listeners[:on_required_parameter_node_leave]&.each { |listener| listener.on_required_parameter_node_leave(node) }
1100
986
  end
1101
987
 
1102
- # Dispatch enter and leave events for RescueModifierNode nodes and continue
1103
- # walking the tree.
1104
- def visit_rescue_modifier_node(node)
988
+ #: (RescueModifierNode node) -> void
989
+ def visit_rescue_modifier_node(node) # :nodoc:
1105
990
  listeners[:on_rescue_modifier_node_enter]&.each { |listener| listener.on_rescue_modifier_node_enter(node) }
1106
991
  super
1107
992
  listeners[:on_rescue_modifier_node_leave]&.each { |listener| listener.on_rescue_modifier_node_leave(node) }
1108
993
  end
1109
994
 
1110
- # Dispatch enter and leave events for RescueNode nodes and continue
1111
- # walking the tree.
1112
- def visit_rescue_node(node)
995
+ #: (RescueNode node) -> void
996
+ def visit_rescue_node(node) # :nodoc:
1113
997
  listeners[:on_rescue_node_enter]&.each { |listener| listener.on_rescue_node_enter(node) }
1114
998
  super
1115
999
  listeners[:on_rescue_node_leave]&.each { |listener| listener.on_rescue_node_leave(node) }
1116
1000
  end
1117
1001
 
1118
- # Dispatch enter and leave events for RestParameterNode nodes and continue
1119
- # walking the tree.
1120
- def visit_rest_parameter_node(node)
1002
+ #: (RestParameterNode node) -> void
1003
+ def visit_rest_parameter_node(node) # :nodoc:
1121
1004
  listeners[:on_rest_parameter_node_enter]&.each { |listener| listener.on_rest_parameter_node_enter(node) }
1122
1005
  super
1123
1006
  listeners[:on_rest_parameter_node_leave]&.each { |listener| listener.on_rest_parameter_node_leave(node) }
1124
1007
  end
1125
1008
 
1126
- # Dispatch enter and leave events for RetryNode nodes and continue
1127
- # walking the tree.
1128
- def visit_retry_node(node)
1009
+ #: (RetryNode node) -> void
1010
+ def visit_retry_node(node) # :nodoc:
1129
1011
  listeners[:on_retry_node_enter]&.each { |listener| listener.on_retry_node_enter(node) }
1130
1012
  super
1131
1013
  listeners[:on_retry_node_leave]&.each { |listener| listener.on_retry_node_leave(node) }
1132
1014
  end
1133
1015
 
1134
- # Dispatch enter and leave events for ReturnNode nodes and continue
1135
- # walking the tree.
1136
- def visit_return_node(node)
1016
+ #: (ReturnNode node) -> void
1017
+ def visit_return_node(node) # :nodoc:
1137
1018
  listeners[:on_return_node_enter]&.each { |listener| listener.on_return_node_enter(node) }
1138
1019
  super
1139
1020
  listeners[:on_return_node_leave]&.each { |listener| listener.on_return_node_leave(node) }
1140
1021
  end
1141
1022
 
1142
- # Dispatch enter and leave events for SelfNode nodes and continue
1143
- # walking the tree.
1144
- def visit_self_node(node)
1023
+ #: (SelfNode node) -> void
1024
+ def visit_self_node(node) # :nodoc:
1145
1025
  listeners[:on_self_node_enter]&.each { |listener| listener.on_self_node_enter(node) }
1146
1026
  super
1147
1027
  listeners[:on_self_node_leave]&.each { |listener| listener.on_self_node_leave(node) }
1148
1028
  end
1149
1029
 
1150
- # Dispatch enter and leave events for ShareableConstantNode nodes and continue
1151
- # walking the tree.
1152
- def visit_shareable_constant_node(node)
1030
+ #: (ShareableConstantNode node) -> void
1031
+ def visit_shareable_constant_node(node) # :nodoc:
1153
1032
  listeners[:on_shareable_constant_node_enter]&.each { |listener| listener.on_shareable_constant_node_enter(node) }
1154
1033
  super
1155
1034
  listeners[:on_shareable_constant_node_leave]&.each { |listener| listener.on_shareable_constant_node_leave(node) }
1156
1035
  end
1157
1036
 
1158
- # Dispatch enter and leave events for SingletonClassNode nodes and continue
1159
- # walking the tree.
1160
- def visit_singleton_class_node(node)
1037
+ #: (SingletonClassNode node) -> void
1038
+ def visit_singleton_class_node(node) # :nodoc:
1161
1039
  listeners[:on_singleton_class_node_enter]&.each { |listener| listener.on_singleton_class_node_enter(node) }
1162
1040
  super
1163
1041
  listeners[:on_singleton_class_node_leave]&.each { |listener| listener.on_singleton_class_node_leave(node) }
1164
1042
  end
1165
1043
 
1166
- # Dispatch enter and leave events for SourceEncodingNode nodes and continue
1167
- # walking the tree.
1168
- def visit_source_encoding_node(node)
1044
+ #: (SourceEncodingNode node) -> void
1045
+ def visit_source_encoding_node(node) # :nodoc:
1169
1046
  listeners[:on_source_encoding_node_enter]&.each { |listener| listener.on_source_encoding_node_enter(node) }
1170
1047
  super
1171
1048
  listeners[:on_source_encoding_node_leave]&.each { |listener| listener.on_source_encoding_node_leave(node) }
1172
1049
  end
1173
1050
 
1174
- # Dispatch enter and leave events for SourceFileNode nodes and continue
1175
- # walking the tree.
1176
- def visit_source_file_node(node)
1051
+ #: (SourceFileNode node) -> void
1052
+ def visit_source_file_node(node) # :nodoc:
1177
1053
  listeners[:on_source_file_node_enter]&.each { |listener| listener.on_source_file_node_enter(node) }
1178
1054
  super
1179
1055
  listeners[:on_source_file_node_leave]&.each { |listener| listener.on_source_file_node_leave(node) }
1180
1056
  end
1181
1057
 
1182
- # Dispatch enter and leave events for SourceLineNode nodes and continue
1183
- # walking the tree.
1184
- def visit_source_line_node(node)
1058
+ #: (SourceLineNode node) -> void
1059
+ def visit_source_line_node(node) # :nodoc:
1185
1060
  listeners[:on_source_line_node_enter]&.each { |listener| listener.on_source_line_node_enter(node) }
1186
1061
  super
1187
1062
  listeners[:on_source_line_node_leave]&.each { |listener| listener.on_source_line_node_leave(node) }
1188
1063
  end
1189
1064
 
1190
- # Dispatch enter and leave events for SplatNode nodes and continue
1191
- # walking the tree.
1192
- def visit_splat_node(node)
1065
+ #: (SplatNode node) -> void
1066
+ def visit_splat_node(node) # :nodoc:
1193
1067
  listeners[:on_splat_node_enter]&.each { |listener| listener.on_splat_node_enter(node) }
1194
1068
  super
1195
1069
  listeners[:on_splat_node_leave]&.each { |listener| listener.on_splat_node_leave(node) }
1196
1070
  end
1197
1071
 
1198
- # Dispatch enter and leave events for StatementsNode nodes and continue
1199
- # walking the tree.
1200
- def visit_statements_node(node)
1072
+ #: (StatementsNode node) -> void
1073
+ def visit_statements_node(node) # :nodoc:
1201
1074
  listeners[:on_statements_node_enter]&.each { |listener| listener.on_statements_node_enter(node) }
1202
1075
  super
1203
1076
  listeners[:on_statements_node_leave]&.each { |listener| listener.on_statements_node_leave(node) }
1204
1077
  end
1205
1078
 
1206
- # Dispatch enter and leave events for StringNode nodes and continue
1207
- # walking the tree.
1208
- def visit_string_node(node)
1079
+ #: (StringNode node) -> void
1080
+ def visit_string_node(node) # :nodoc:
1209
1081
  listeners[:on_string_node_enter]&.each { |listener| listener.on_string_node_enter(node) }
1210
1082
  super
1211
1083
  listeners[:on_string_node_leave]&.each { |listener| listener.on_string_node_leave(node) }
1212
1084
  end
1213
1085
 
1214
- # Dispatch enter and leave events for SuperNode nodes and continue
1215
- # walking the tree.
1216
- def visit_super_node(node)
1086
+ #: (SuperNode node) -> void
1087
+ def visit_super_node(node) # :nodoc:
1217
1088
  listeners[:on_super_node_enter]&.each { |listener| listener.on_super_node_enter(node) }
1218
1089
  super
1219
1090
  listeners[:on_super_node_leave]&.each { |listener| listener.on_super_node_leave(node) }
1220
1091
  end
1221
1092
 
1222
- # Dispatch enter and leave events for SymbolNode nodes and continue
1223
- # walking the tree.
1224
- def visit_symbol_node(node)
1093
+ #: (SymbolNode node) -> void
1094
+ def visit_symbol_node(node) # :nodoc:
1225
1095
  listeners[:on_symbol_node_enter]&.each { |listener| listener.on_symbol_node_enter(node) }
1226
1096
  super
1227
1097
  listeners[:on_symbol_node_leave]&.each { |listener| listener.on_symbol_node_leave(node) }
1228
1098
  end
1229
1099
 
1230
- # Dispatch enter and leave events for TrueNode nodes and continue
1231
- # walking the tree.
1232
- def visit_true_node(node)
1100
+ #: (TrueNode node) -> void
1101
+ def visit_true_node(node) # :nodoc:
1233
1102
  listeners[:on_true_node_enter]&.each { |listener| listener.on_true_node_enter(node) }
1234
1103
  super
1235
1104
  listeners[:on_true_node_leave]&.each { |listener| listener.on_true_node_leave(node) }
1236
1105
  end
1237
1106
 
1238
- # Dispatch enter and leave events for UndefNode nodes and continue
1239
- # walking the tree.
1240
- def visit_undef_node(node)
1107
+ #: (UndefNode node) -> void
1108
+ def visit_undef_node(node) # :nodoc:
1241
1109
  listeners[:on_undef_node_enter]&.each { |listener| listener.on_undef_node_enter(node) }
1242
1110
  super
1243
1111
  listeners[:on_undef_node_leave]&.each { |listener| listener.on_undef_node_leave(node) }
1244
1112
  end
1245
1113
 
1246
- # Dispatch enter and leave events for UnlessNode nodes and continue
1247
- # walking the tree.
1248
- def visit_unless_node(node)
1114
+ #: (UnlessNode node) -> void
1115
+ def visit_unless_node(node) # :nodoc:
1249
1116
  listeners[:on_unless_node_enter]&.each { |listener| listener.on_unless_node_enter(node) }
1250
1117
  super
1251
1118
  listeners[:on_unless_node_leave]&.each { |listener| listener.on_unless_node_leave(node) }
1252
1119
  end
1253
1120
 
1254
- # Dispatch enter and leave events for UntilNode nodes and continue
1255
- # walking the tree.
1256
- def visit_until_node(node)
1121
+ #: (UntilNode node) -> void
1122
+ def visit_until_node(node) # :nodoc:
1257
1123
  listeners[:on_until_node_enter]&.each { |listener| listener.on_until_node_enter(node) }
1258
1124
  super
1259
1125
  listeners[:on_until_node_leave]&.each { |listener| listener.on_until_node_leave(node) }
1260
1126
  end
1261
1127
 
1262
- # Dispatch enter and leave events for WhenNode nodes and continue
1263
- # walking the tree.
1264
- def visit_when_node(node)
1128
+ #: (WhenNode node) -> void
1129
+ def visit_when_node(node) # :nodoc:
1265
1130
  listeners[:on_when_node_enter]&.each { |listener| listener.on_when_node_enter(node) }
1266
1131
  super
1267
1132
  listeners[:on_when_node_leave]&.each { |listener| listener.on_when_node_leave(node) }
1268
1133
  end
1269
1134
 
1270
- # Dispatch enter and leave events for WhileNode nodes and continue
1271
- # walking the tree.
1272
- def visit_while_node(node)
1135
+ #: (WhileNode node) -> void
1136
+ def visit_while_node(node) # :nodoc:
1273
1137
  listeners[:on_while_node_enter]&.each { |listener| listener.on_while_node_enter(node) }
1274
1138
  super
1275
1139
  listeners[:on_while_node_leave]&.each { |listener| listener.on_while_node_leave(node) }
1276
1140
  end
1277
1141
 
1278
- # Dispatch enter and leave events for XStringNode nodes and continue
1279
- # walking the tree.
1280
- def visit_x_string_node(node)
1142
+ #: (XStringNode node) -> void
1143
+ def visit_x_string_node(node) # :nodoc:
1281
1144
  listeners[:on_x_string_node_enter]&.each { |listener| listener.on_x_string_node_enter(node) }
1282
1145
  super
1283
1146
  listeners[:on_x_string_node_leave]&.each { |listener| listener.on_x_string_node_leave(node) }
1284
1147
  end
1285
1148
 
1286
- # Dispatch enter and leave events for YieldNode nodes and continue
1287
- # walking the tree.
1288
- def visit_yield_node(node)
1149
+ #: (YieldNode node) -> void
1150
+ def visit_yield_node(node) # :nodoc:
1289
1151
  listeners[:on_yield_node_enter]&.each { |listener| listener.on_yield_node_enter(node) }
1290
1152
  super
1291
1153
  listeners[:on_yield_node_leave]&.each { |listener| listener.on_yield_node_leave(node) }
1292
1154
  end
1293
1155
 
1294
1156
  class DispatchOnce < Visitor # :nodoc:
1295
- attr_reader :listeners
1157
+ attr_reader :listeners #: Hash[Symbol, Array[untyped]]
1296
1158
 
1159
+ #: (Hash[Symbol, Array[untyped]] listeners) -> void
1297
1160
  def initialize(listeners)
1298
1161
  @listeners = listeners
1299
1162
  end
1300
1163
 
1301
1164
  # Dispatch enter and leave events for AliasGlobalVariableNode nodes.
1165
+ #
1166
+ #: (AliasGlobalVariableNode node) -> void
1302
1167
  def visit_alias_global_variable_node(node)
1303
1168
  listeners[:on_alias_global_variable_node_enter]&.each { |listener| listener.on_alias_global_variable_node_enter(node) }
1304
1169
  listeners[:on_alias_global_variable_node_leave]&.each { |listener| listener.on_alias_global_variable_node_leave(node) }
1305
1170
  end
1306
1171
 
1307
1172
  # Dispatch enter and leave events for AliasMethodNode nodes.
1173
+ #
1174
+ #: (AliasMethodNode node) -> void
1308
1175
  def visit_alias_method_node(node)
1309
1176
  listeners[:on_alias_method_node_enter]&.each { |listener| listener.on_alias_method_node_enter(node) }
1310
1177
  listeners[:on_alias_method_node_leave]&.each { |listener| listener.on_alias_method_node_leave(node) }
1311
1178
  end
1312
1179
 
1313
1180
  # Dispatch enter and leave events for AlternationPatternNode nodes.
1181
+ #
1182
+ #: (AlternationPatternNode node) -> void
1314
1183
  def visit_alternation_pattern_node(node)
1315
1184
  listeners[:on_alternation_pattern_node_enter]&.each { |listener| listener.on_alternation_pattern_node_enter(node) }
1316
1185
  listeners[:on_alternation_pattern_node_leave]&.each { |listener| listener.on_alternation_pattern_node_leave(node) }
1317
1186
  end
1318
1187
 
1319
1188
  # Dispatch enter and leave events for AndNode nodes.
1189
+ #
1190
+ #: (AndNode node) -> void
1320
1191
  def visit_and_node(node)
1321
1192
  listeners[:on_and_node_enter]&.each { |listener| listener.on_and_node_enter(node) }
1322
1193
  listeners[:on_and_node_leave]&.each { |listener| listener.on_and_node_leave(node) }
1323
1194
  end
1324
1195
 
1325
1196
  # Dispatch enter and leave events for ArgumentsNode nodes.
1197
+ #
1198
+ #: (ArgumentsNode node) -> void
1326
1199
  def visit_arguments_node(node)
1327
1200
  listeners[:on_arguments_node_enter]&.each { |listener| listener.on_arguments_node_enter(node) }
1328
1201
  listeners[:on_arguments_node_leave]&.each { |listener| listener.on_arguments_node_leave(node) }
1329
1202
  end
1330
1203
 
1331
1204
  # Dispatch enter and leave events for ArrayNode nodes.
1205
+ #
1206
+ #: (ArrayNode node) -> void
1332
1207
  def visit_array_node(node)
1333
1208
  listeners[:on_array_node_enter]&.each { |listener| listener.on_array_node_enter(node) }
1334
1209
  listeners[:on_array_node_leave]&.each { |listener| listener.on_array_node_leave(node) }
1335
1210
  end
1336
1211
 
1337
1212
  # Dispatch enter and leave events for ArrayPatternNode nodes.
1213
+ #
1214
+ #: (ArrayPatternNode node) -> void
1338
1215
  def visit_array_pattern_node(node)
1339
1216
  listeners[:on_array_pattern_node_enter]&.each { |listener| listener.on_array_pattern_node_enter(node) }
1340
1217
  listeners[:on_array_pattern_node_leave]&.each { |listener| listener.on_array_pattern_node_leave(node) }
1341
1218
  end
1342
1219
 
1343
1220
  # Dispatch enter and leave events for AssocNode nodes.
1221
+ #
1222
+ #: (AssocNode node) -> void
1344
1223
  def visit_assoc_node(node)
1345
1224
  listeners[:on_assoc_node_enter]&.each { |listener| listener.on_assoc_node_enter(node) }
1346
1225
  listeners[:on_assoc_node_leave]&.each { |listener| listener.on_assoc_node_leave(node) }
1347
1226
  end
1348
1227
 
1349
1228
  # Dispatch enter and leave events for AssocSplatNode nodes.
1229
+ #
1230
+ #: (AssocSplatNode node) -> void
1350
1231
  def visit_assoc_splat_node(node)
1351
1232
  listeners[:on_assoc_splat_node_enter]&.each { |listener| listener.on_assoc_splat_node_enter(node) }
1352
1233
  listeners[:on_assoc_splat_node_leave]&.each { |listener| listener.on_assoc_splat_node_leave(node) }
1353
1234
  end
1354
1235
 
1355
1236
  # Dispatch enter and leave events for BackReferenceReadNode nodes.
1237
+ #
1238
+ #: (BackReferenceReadNode node) -> void
1356
1239
  def visit_back_reference_read_node(node)
1357
1240
  listeners[:on_back_reference_read_node_enter]&.each { |listener| listener.on_back_reference_read_node_enter(node) }
1358
1241
  listeners[:on_back_reference_read_node_leave]&.each { |listener| listener.on_back_reference_read_node_leave(node) }
1359
1242
  end
1360
1243
 
1361
1244
  # Dispatch enter and leave events for BeginNode nodes.
1245
+ #
1246
+ #: (BeginNode node) -> void
1362
1247
  def visit_begin_node(node)
1363
1248
  listeners[:on_begin_node_enter]&.each { |listener| listener.on_begin_node_enter(node) }
1364
1249
  listeners[:on_begin_node_leave]&.each { |listener| listener.on_begin_node_leave(node) }
1365
1250
  end
1366
1251
 
1367
1252
  # Dispatch enter and leave events for BlockArgumentNode nodes.
1253
+ #
1254
+ #: (BlockArgumentNode node) -> void
1368
1255
  def visit_block_argument_node(node)
1369
1256
  listeners[:on_block_argument_node_enter]&.each { |listener| listener.on_block_argument_node_enter(node) }
1370
1257
  listeners[:on_block_argument_node_leave]&.each { |listener| listener.on_block_argument_node_leave(node) }
1371
1258
  end
1372
1259
 
1373
1260
  # Dispatch enter and leave events for BlockLocalVariableNode nodes.
1261
+ #
1262
+ #: (BlockLocalVariableNode node) -> void
1374
1263
  def visit_block_local_variable_node(node)
1375
1264
  listeners[:on_block_local_variable_node_enter]&.each { |listener| listener.on_block_local_variable_node_enter(node) }
1376
1265
  listeners[:on_block_local_variable_node_leave]&.each { |listener| listener.on_block_local_variable_node_leave(node) }
1377
1266
  end
1378
1267
 
1379
1268
  # Dispatch enter and leave events for BlockNode nodes.
1269
+ #
1270
+ #: (BlockNode node) -> void
1380
1271
  def visit_block_node(node)
1381
1272
  listeners[:on_block_node_enter]&.each { |listener| listener.on_block_node_enter(node) }
1382
1273
  listeners[:on_block_node_leave]&.each { |listener| listener.on_block_node_leave(node) }
1383
1274
  end
1384
1275
 
1385
1276
  # Dispatch enter and leave events for BlockParameterNode nodes.
1277
+ #
1278
+ #: (BlockParameterNode node) -> void
1386
1279
  def visit_block_parameter_node(node)
1387
1280
  listeners[:on_block_parameter_node_enter]&.each { |listener| listener.on_block_parameter_node_enter(node) }
1388
1281
  listeners[:on_block_parameter_node_leave]&.each { |listener| listener.on_block_parameter_node_leave(node) }
1389
1282
  end
1390
1283
 
1391
1284
  # Dispatch enter and leave events for BlockParametersNode nodes.
1285
+ #
1286
+ #: (BlockParametersNode node) -> void
1392
1287
  def visit_block_parameters_node(node)
1393
1288
  listeners[:on_block_parameters_node_enter]&.each { |listener| listener.on_block_parameters_node_enter(node) }
1394
1289
  listeners[:on_block_parameters_node_leave]&.each { |listener| listener.on_block_parameters_node_leave(node) }
1395
1290
  end
1396
1291
 
1397
1292
  # Dispatch enter and leave events for BreakNode nodes.
1293
+ #
1294
+ #: (BreakNode node) -> void
1398
1295
  def visit_break_node(node)
1399
1296
  listeners[:on_break_node_enter]&.each { |listener| listener.on_break_node_enter(node) }
1400
1297
  listeners[:on_break_node_leave]&.each { |listener| listener.on_break_node_leave(node) }
1401
1298
  end
1402
1299
 
1403
1300
  # Dispatch enter and leave events for CallAndWriteNode nodes.
1301
+ #
1302
+ #: (CallAndWriteNode node) -> void
1404
1303
  def visit_call_and_write_node(node)
1405
1304
  listeners[:on_call_and_write_node_enter]&.each { |listener| listener.on_call_and_write_node_enter(node) }
1406
1305
  listeners[:on_call_and_write_node_leave]&.each { |listener| listener.on_call_and_write_node_leave(node) }
1407
1306
  end
1408
1307
 
1409
1308
  # Dispatch enter and leave events for CallNode nodes.
1309
+ #
1310
+ #: (CallNode node) -> void
1410
1311
  def visit_call_node(node)
1411
1312
  listeners[:on_call_node_enter]&.each { |listener| listener.on_call_node_enter(node) }
1412
1313
  listeners[:on_call_node_leave]&.each { |listener| listener.on_call_node_leave(node) }
1413
1314
  end
1414
1315
 
1415
1316
  # Dispatch enter and leave events for CallOperatorWriteNode nodes.
1317
+ #
1318
+ #: (CallOperatorWriteNode node) -> void
1416
1319
  def visit_call_operator_write_node(node)
1417
1320
  listeners[:on_call_operator_write_node_enter]&.each { |listener| listener.on_call_operator_write_node_enter(node) }
1418
1321
  listeners[:on_call_operator_write_node_leave]&.each { |listener| listener.on_call_operator_write_node_leave(node) }
1419
1322
  end
1420
1323
 
1421
1324
  # Dispatch enter and leave events for CallOrWriteNode nodes.
1325
+ #
1326
+ #: (CallOrWriteNode node) -> void
1422
1327
  def visit_call_or_write_node(node)
1423
1328
  listeners[:on_call_or_write_node_enter]&.each { |listener| listener.on_call_or_write_node_enter(node) }
1424
1329
  listeners[:on_call_or_write_node_leave]&.each { |listener| listener.on_call_or_write_node_leave(node) }
1425
1330
  end
1426
1331
 
1427
1332
  # Dispatch enter and leave events for CallTargetNode nodes.
1333
+ #
1334
+ #: (CallTargetNode node) -> void
1428
1335
  def visit_call_target_node(node)
1429
1336
  listeners[:on_call_target_node_enter]&.each { |listener| listener.on_call_target_node_enter(node) }
1430
1337
  listeners[:on_call_target_node_leave]&.each { |listener| listener.on_call_target_node_leave(node) }
1431
1338
  end
1432
1339
 
1433
1340
  # Dispatch enter and leave events for CapturePatternNode nodes.
1341
+ #
1342
+ #: (CapturePatternNode node) -> void
1434
1343
  def visit_capture_pattern_node(node)
1435
1344
  listeners[:on_capture_pattern_node_enter]&.each { |listener| listener.on_capture_pattern_node_enter(node) }
1436
1345
  listeners[:on_capture_pattern_node_leave]&.each { |listener| listener.on_capture_pattern_node_leave(node) }
1437
1346
  end
1438
1347
 
1439
1348
  # Dispatch enter and leave events for CaseMatchNode nodes.
1349
+ #
1350
+ #: (CaseMatchNode node) -> void
1440
1351
  def visit_case_match_node(node)
1441
1352
  listeners[:on_case_match_node_enter]&.each { |listener| listener.on_case_match_node_enter(node) }
1442
1353
  listeners[:on_case_match_node_leave]&.each { |listener| listener.on_case_match_node_leave(node) }
1443
1354
  end
1444
1355
 
1445
1356
  # Dispatch enter and leave events for CaseNode nodes.
1357
+ #
1358
+ #: (CaseNode node) -> void
1446
1359
  def visit_case_node(node)
1447
1360
  listeners[:on_case_node_enter]&.each { |listener| listener.on_case_node_enter(node) }
1448
1361
  listeners[:on_case_node_leave]&.each { |listener| listener.on_case_node_leave(node) }
1449
1362
  end
1450
1363
 
1451
1364
  # Dispatch enter and leave events for ClassNode nodes.
1365
+ #
1366
+ #: (ClassNode node) -> void
1452
1367
  def visit_class_node(node)
1453
1368
  listeners[:on_class_node_enter]&.each { |listener| listener.on_class_node_enter(node) }
1454
1369
  listeners[:on_class_node_leave]&.each { |listener| listener.on_class_node_leave(node) }
1455
1370
  end
1456
1371
 
1457
1372
  # Dispatch enter and leave events for ClassVariableAndWriteNode nodes.
1373
+ #
1374
+ #: (ClassVariableAndWriteNode node) -> void
1458
1375
  def visit_class_variable_and_write_node(node)
1459
1376
  listeners[:on_class_variable_and_write_node_enter]&.each { |listener| listener.on_class_variable_and_write_node_enter(node) }
1460
1377
  listeners[:on_class_variable_and_write_node_leave]&.each { |listener| listener.on_class_variable_and_write_node_leave(node) }
1461
1378
  end
1462
1379
 
1463
1380
  # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes.
1381
+ #
1382
+ #: (ClassVariableOperatorWriteNode node) -> void
1464
1383
  def visit_class_variable_operator_write_node(node)
1465
1384
  listeners[:on_class_variable_operator_write_node_enter]&.each { |listener| listener.on_class_variable_operator_write_node_enter(node) }
1466
1385
  listeners[:on_class_variable_operator_write_node_leave]&.each { |listener| listener.on_class_variable_operator_write_node_leave(node) }
1467
1386
  end
1468
1387
 
1469
1388
  # Dispatch enter and leave events for ClassVariableOrWriteNode nodes.
1389
+ #
1390
+ #: (ClassVariableOrWriteNode node) -> void
1470
1391
  def visit_class_variable_or_write_node(node)
1471
1392
  listeners[:on_class_variable_or_write_node_enter]&.each { |listener| listener.on_class_variable_or_write_node_enter(node) }
1472
1393
  listeners[:on_class_variable_or_write_node_leave]&.each { |listener| listener.on_class_variable_or_write_node_leave(node) }
1473
1394
  end
1474
1395
 
1475
1396
  # Dispatch enter and leave events for ClassVariableReadNode nodes.
1397
+ #
1398
+ #: (ClassVariableReadNode node) -> void
1476
1399
  def visit_class_variable_read_node(node)
1477
1400
  listeners[:on_class_variable_read_node_enter]&.each { |listener| listener.on_class_variable_read_node_enter(node) }
1478
1401
  listeners[:on_class_variable_read_node_leave]&.each { |listener| listener.on_class_variable_read_node_leave(node) }
1479
1402
  end
1480
1403
 
1481
1404
  # Dispatch enter and leave events for ClassVariableTargetNode nodes.
1405
+ #
1406
+ #: (ClassVariableTargetNode node) -> void
1482
1407
  def visit_class_variable_target_node(node)
1483
1408
  listeners[:on_class_variable_target_node_enter]&.each { |listener| listener.on_class_variable_target_node_enter(node) }
1484
1409
  listeners[:on_class_variable_target_node_leave]&.each { |listener| listener.on_class_variable_target_node_leave(node) }
1485
1410
  end
1486
1411
 
1487
1412
  # Dispatch enter and leave events for ClassVariableWriteNode nodes.
1413
+ #
1414
+ #: (ClassVariableWriteNode node) -> void
1488
1415
  def visit_class_variable_write_node(node)
1489
1416
  listeners[:on_class_variable_write_node_enter]&.each { |listener| listener.on_class_variable_write_node_enter(node) }
1490
1417
  listeners[:on_class_variable_write_node_leave]&.each { |listener| listener.on_class_variable_write_node_leave(node) }
1491
1418
  end
1492
1419
 
1493
1420
  # Dispatch enter and leave events for ConstantAndWriteNode nodes.
1421
+ #
1422
+ #: (ConstantAndWriteNode node) -> void
1494
1423
  def visit_constant_and_write_node(node)
1495
1424
  listeners[:on_constant_and_write_node_enter]&.each { |listener| listener.on_constant_and_write_node_enter(node) }
1496
1425
  listeners[:on_constant_and_write_node_leave]&.each { |listener| listener.on_constant_and_write_node_leave(node) }
1497
1426
  end
1498
1427
 
1499
1428
  # Dispatch enter and leave events for ConstantOperatorWriteNode nodes.
1429
+ #
1430
+ #: (ConstantOperatorWriteNode node) -> void
1500
1431
  def visit_constant_operator_write_node(node)
1501
1432
  listeners[:on_constant_operator_write_node_enter]&.each { |listener| listener.on_constant_operator_write_node_enter(node) }
1502
1433
  listeners[:on_constant_operator_write_node_leave]&.each { |listener| listener.on_constant_operator_write_node_leave(node) }
1503
1434
  end
1504
1435
 
1505
1436
  # Dispatch enter and leave events for ConstantOrWriteNode nodes.
1437
+ #
1438
+ #: (ConstantOrWriteNode node) -> void
1506
1439
  def visit_constant_or_write_node(node)
1507
1440
  listeners[:on_constant_or_write_node_enter]&.each { |listener| listener.on_constant_or_write_node_enter(node) }
1508
1441
  listeners[:on_constant_or_write_node_leave]&.each { |listener| listener.on_constant_or_write_node_leave(node) }
1509
1442
  end
1510
1443
 
1511
1444
  # Dispatch enter and leave events for ConstantPathAndWriteNode nodes.
1445
+ #
1446
+ #: (ConstantPathAndWriteNode node) -> void
1512
1447
  def visit_constant_path_and_write_node(node)
1513
1448
  listeners[:on_constant_path_and_write_node_enter]&.each { |listener| listener.on_constant_path_and_write_node_enter(node) }
1514
1449
  listeners[:on_constant_path_and_write_node_leave]&.each { |listener| listener.on_constant_path_and_write_node_leave(node) }
1515
1450
  end
1516
1451
 
1517
1452
  # Dispatch enter and leave events for ConstantPathNode nodes.
1453
+ #
1454
+ #: (ConstantPathNode node) -> void
1518
1455
  def visit_constant_path_node(node)
1519
1456
  listeners[:on_constant_path_node_enter]&.each { |listener| listener.on_constant_path_node_enter(node) }
1520
1457
  listeners[:on_constant_path_node_leave]&.each { |listener| listener.on_constant_path_node_leave(node) }
1521
1458
  end
1522
1459
 
1523
1460
  # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes.
1461
+ #
1462
+ #: (ConstantPathOperatorWriteNode node) -> void
1524
1463
  def visit_constant_path_operator_write_node(node)
1525
1464
  listeners[:on_constant_path_operator_write_node_enter]&.each { |listener| listener.on_constant_path_operator_write_node_enter(node) }
1526
1465
  listeners[:on_constant_path_operator_write_node_leave]&.each { |listener| listener.on_constant_path_operator_write_node_leave(node) }
1527
1466
  end
1528
1467
 
1529
1468
  # Dispatch enter and leave events for ConstantPathOrWriteNode nodes.
1469
+ #
1470
+ #: (ConstantPathOrWriteNode node) -> void
1530
1471
  def visit_constant_path_or_write_node(node)
1531
1472
  listeners[:on_constant_path_or_write_node_enter]&.each { |listener| listener.on_constant_path_or_write_node_enter(node) }
1532
1473
  listeners[:on_constant_path_or_write_node_leave]&.each { |listener| listener.on_constant_path_or_write_node_leave(node) }
1533
1474
  end
1534
1475
 
1535
1476
  # Dispatch enter and leave events for ConstantPathTargetNode nodes.
1477
+ #
1478
+ #: (ConstantPathTargetNode node) -> void
1536
1479
  def visit_constant_path_target_node(node)
1537
1480
  listeners[:on_constant_path_target_node_enter]&.each { |listener| listener.on_constant_path_target_node_enter(node) }
1538
1481
  listeners[:on_constant_path_target_node_leave]&.each { |listener| listener.on_constant_path_target_node_leave(node) }
1539
1482
  end
1540
1483
 
1541
1484
  # Dispatch enter and leave events for ConstantPathWriteNode nodes.
1485
+ #
1486
+ #: (ConstantPathWriteNode node) -> void
1542
1487
  def visit_constant_path_write_node(node)
1543
1488
  listeners[:on_constant_path_write_node_enter]&.each { |listener| listener.on_constant_path_write_node_enter(node) }
1544
1489
  listeners[:on_constant_path_write_node_leave]&.each { |listener| listener.on_constant_path_write_node_leave(node) }
1545
1490
  end
1546
1491
 
1547
1492
  # Dispatch enter and leave events for ConstantReadNode nodes.
1493
+ #
1494
+ #: (ConstantReadNode node) -> void
1548
1495
  def visit_constant_read_node(node)
1549
1496
  listeners[:on_constant_read_node_enter]&.each { |listener| listener.on_constant_read_node_enter(node) }
1550
1497
  listeners[:on_constant_read_node_leave]&.each { |listener| listener.on_constant_read_node_leave(node) }
1551
1498
  end
1552
1499
 
1553
1500
  # Dispatch enter and leave events for ConstantTargetNode nodes.
1501
+ #
1502
+ #: (ConstantTargetNode node) -> void
1554
1503
  def visit_constant_target_node(node)
1555
1504
  listeners[:on_constant_target_node_enter]&.each { |listener| listener.on_constant_target_node_enter(node) }
1556
1505
  listeners[:on_constant_target_node_leave]&.each { |listener| listener.on_constant_target_node_leave(node) }
1557
1506
  end
1558
1507
 
1559
1508
  # Dispatch enter and leave events for ConstantWriteNode nodes.
1509
+ #
1510
+ #: (ConstantWriteNode node) -> void
1560
1511
  def visit_constant_write_node(node)
1561
1512
  listeners[:on_constant_write_node_enter]&.each { |listener| listener.on_constant_write_node_enter(node) }
1562
1513
  listeners[:on_constant_write_node_leave]&.each { |listener| listener.on_constant_write_node_leave(node) }
1563
1514
  end
1564
1515
 
1565
1516
  # Dispatch enter and leave events for DefNode nodes.
1517
+ #
1518
+ #: (DefNode node) -> void
1566
1519
  def visit_def_node(node)
1567
1520
  listeners[:on_def_node_enter]&.each { |listener| listener.on_def_node_enter(node) }
1568
1521
  listeners[:on_def_node_leave]&.each { |listener| listener.on_def_node_leave(node) }
1569
1522
  end
1570
1523
 
1571
1524
  # Dispatch enter and leave events for DefinedNode nodes.
1525
+ #
1526
+ #: (DefinedNode node) -> void
1572
1527
  def visit_defined_node(node)
1573
1528
  listeners[:on_defined_node_enter]&.each { |listener| listener.on_defined_node_enter(node) }
1574
1529
  listeners[:on_defined_node_leave]&.each { |listener| listener.on_defined_node_leave(node) }
1575
1530
  end
1576
1531
 
1577
1532
  # Dispatch enter and leave events for ElseNode nodes.
1533
+ #
1534
+ #: (ElseNode node) -> void
1578
1535
  def visit_else_node(node)
1579
1536
  listeners[:on_else_node_enter]&.each { |listener| listener.on_else_node_enter(node) }
1580
1537
  listeners[:on_else_node_leave]&.each { |listener| listener.on_else_node_leave(node) }
1581
1538
  end
1582
1539
 
1583
1540
  # Dispatch enter and leave events for EmbeddedStatementsNode nodes.
1541
+ #
1542
+ #: (EmbeddedStatementsNode node) -> void
1584
1543
  def visit_embedded_statements_node(node)
1585
1544
  listeners[:on_embedded_statements_node_enter]&.each { |listener| listener.on_embedded_statements_node_enter(node) }
1586
1545
  listeners[:on_embedded_statements_node_leave]&.each { |listener| listener.on_embedded_statements_node_leave(node) }
1587
1546
  end
1588
1547
 
1589
1548
  # Dispatch enter and leave events for EmbeddedVariableNode nodes.
1549
+ #
1550
+ #: (EmbeddedVariableNode node) -> void
1590
1551
  def visit_embedded_variable_node(node)
1591
1552
  listeners[:on_embedded_variable_node_enter]&.each { |listener| listener.on_embedded_variable_node_enter(node) }
1592
1553
  listeners[:on_embedded_variable_node_leave]&.each { |listener| listener.on_embedded_variable_node_leave(node) }
1593
1554
  end
1594
1555
 
1595
1556
  # Dispatch enter and leave events for EnsureNode nodes.
1557
+ #
1558
+ #: (EnsureNode node) -> void
1596
1559
  def visit_ensure_node(node)
1597
1560
  listeners[:on_ensure_node_enter]&.each { |listener| listener.on_ensure_node_enter(node) }
1598
1561
  listeners[:on_ensure_node_leave]&.each { |listener| listener.on_ensure_node_leave(node) }
1599
1562
  end
1600
1563
 
1564
+ # Dispatch enter and leave events for ErrorRecoveryNode nodes.
1565
+ #
1566
+ #: (ErrorRecoveryNode node) -> void
1567
+ def visit_error_recovery_node(node)
1568
+ listeners[:on_error_recovery_node_enter]&.each { |listener| listener.on_error_recovery_node_enter(node) }
1569
+ listeners[:on_error_recovery_node_leave]&.each { |listener| listener.on_error_recovery_node_leave(node) }
1570
+ end
1571
+
1601
1572
  # Dispatch enter and leave events for FalseNode nodes.
1573
+ #
1574
+ #: (FalseNode node) -> void
1602
1575
  def visit_false_node(node)
1603
1576
  listeners[:on_false_node_enter]&.each { |listener| listener.on_false_node_enter(node) }
1604
1577
  listeners[:on_false_node_leave]&.each { |listener| listener.on_false_node_leave(node) }
1605
1578
  end
1606
1579
 
1607
1580
  # Dispatch enter and leave events for FindPatternNode nodes.
1581
+ #
1582
+ #: (FindPatternNode node) -> void
1608
1583
  def visit_find_pattern_node(node)
1609
1584
  listeners[:on_find_pattern_node_enter]&.each { |listener| listener.on_find_pattern_node_enter(node) }
1610
1585
  listeners[:on_find_pattern_node_leave]&.each { |listener| listener.on_find_pattern_node_leave(node) }
1611
1586
  end
1612
1587
 
1613
1588
  # Dispatch enter and leave events for FlipFlopNode nodes.
1589
+ #
1590
+ #: (FlipFlopNode node) -> void
1614
1591
  def visit_flip_flop_node(node)
1615
1592
  listeners[:on_flip_flop_node_enter]&.each { |listener| listener.on_flip_flop_node_enter(node) }
1616
1593
  listeners[:on_flip_flop_node_leave]&.each { |listener| listener.on_flip_flop_node_leave(node) }
1617
1594
  end
1618
1595
 
1619
1596
  # Dispatch enter and leave events for FloatNode nodes.
1597
+ #
1598
+ #: (FloatNode node) -> void
1620
1599
  def visit_float_node(node)
1621
1600
  listeners[:on_float_node_enter]&.each { |listener| listener.on_float_node_enter(node) }
1622
1601
  listeners[:on_float_node_leave]&.each { |listener| listener.on_float_node_leave(node) }
1623
1602
  end
1624
1603
 
1625
1604
  # Dispatch enter and leave events for ForNode nodes.
1605
+ #
1606
+ #: (ForNode node) -> void
1626
1607
  def visit_for_node(node)
1627
1608
  listeners[:on_for_node_enter]&.each { |listener| listener.on_for_node_enter(node) }
1628
1609
  listeners[:on_for_node_leave]&.each { |listener| listener.on_for_node_leave(node) }
1629
1610
  end
1630
1611
 
1631
1612
  # Dispatch enter and leave events for ForwardingArgumentsNode nodes.
1613
+ #
1614
+ #: (ForwardingArgumentsNode node) -> void
1632
1615
  def visit_forwarding_arguments_node(node)
1633
1616
  listeners[:on_forwarding_arguments_node_enter]&.each { |listener| listener.on_forwarding_arguments_node_enter(node) }
1634
1617
  listeners[:on_forwarding_arguments_node_leave]&.each { |listener| listener.on_forwarding_arguments_node_leave(node) }
1635
1618
  end
1636
1619
 
1637
1620
  # Dispatch enter and leave events for ForwardingParameterNode nodes.
1621
+ #
1622
+ #: (ForwardingParameterNode node) -> void
1638
1623
  def visit_forwarding_parameter_node(node)
1639
1624
  listeners[:on_forwarding_parameter_node_enter]&.each { |listener| listener.on_forwarding_parameter_node_enter(node) }
1640
1625
  listeners[:on_forwarding_parameter_node_leave]&.each { |listener| listener.on_forwarding_parameter_node_leave(node) }
1641
1626
  end
1642
1627
 
1643
1628
  # Dispatch enter and leave events for ForwardingSuperNode nodes.
1629
+ #
1630
+ #: (ForwardingSuperNode node) -> void
1644
1631
  def visit_forwarding_super_node(node)
1645
1632
  listeners[:on_forwarding_super_node_enter]&.each { |listener| listener.on_forwarding_super_node_enter(node) }
1646
1633
  listeners[:on_forwarding_super_node_leave]&.each { |listener| listener.on_forwarding_super_node_leave(node) }
1647
1634
  end
1648
1635
 
1649
1636
  # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes.
1637
+ #
1638
+ #: (GlobalVariableAndWriteNode node) -> void
1650
1639
  def visit_global_variable_and_write_node(node)
1651
1640
  listeners[:on_global_variable_and_write_node_enter]&.each { |listener| listener.on_global_variable_and_write_node_enter(node) }
1652
1641
  listeners[:on_global_variable_and_write_node_leave]&.each { |listener| listener.on_global_variable_and_write_node_leave(node) }
1653
1642
  end
1654
1643
 
1655
1644
  # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes.
1645
+ #
1646
+ #: (GlobalVariableOperatorWriteNode node) -> void
1656
1647
  def visit_global_variable_operator_write_node(node)
1657
1648
  listeners[:on_global_variable_operator_write_node_enter]&.each { |listener| listener.on_global_variable_operator_write_node_enter(node) }
1658
1649
  listeners[:on_global_variable_operator_write_node_leave]&.each { |listener| listener.on_global_variable_operator_write_node_leave(node) }
1659
1650
  end
1660
1651
 
1661
1652
  # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes.
1653
+ #
1654
+ #: (GlobalVariableOrWriteNode node) -> void
1662
1655
  def visit_global_variable_or_write_node(node)
1663
1656
  listeners[:on_global_variable_or_write_node_enter]&.each { |listener| listener.on_global_variable_or_write_node_enter(node) }
1664
1657
  listeners[:on_global_variable_or_write_node_leave]&.each { |listener| listener.on_global_variable_or_write_node_leave(node) }
1665
1658
  end
1666
1659
 
1667
1660
  # Dispatch enter and leave events for GlobalVariableReadNode nodes.
1661
+ #
1662
+ #: (GlobalVariableReadNode node) -> void
1668
1663
  def visit_global_variable_read_node(node)
1669
1664
  listeners[:on_global_variable_read_node_enter]&.each { |listener| listener.on_global_variable_read_node_enter(node) }
1670
1665
  listeners[:on_global_variable_read_node_leave]&.each { |listener| listener.on_global_variable_read_node_leave(node) }
1671
1666
  end
1672
1667
 
1673
1668
  # Dispatch enter and leave events for GlobalVariableTargetNode nodes.
1669
+ #
1670
+ #: (GlobalVariableTargetNode node) -> void
1674
1671
  def visit_global_variable_target_node(node)
1675
1672
  listeners[:on_global_variable_target_node_enter]&.each { |listener| listener.on_global_variable_target_node_enter(node) }
1676
1673
  listeners[:on_global_variable_target_node_leave]&.each { |listener| listener.on_global_variable_target_node_leave(node) }
1677
1674
  end
1678
1675
 
1679
1676
  # Dispatch enter and leave events for GlobalVariableWriteNode nodes.
1677
+ #
1678
+ #: (GlobalVariableWriteNode node) -> void
1680
1679
  def visit_global_variable_write_node(node)
1681
1680
  listeners[:on_global_variable_write_node_enter]&.each { |listener| listener.on_global_variable_write_node_enter(node) }
1682
1681
  listeners[:on_global_variable_write_node_leave]&.each { |listener| listener.on_global_variable_write_node_leave(node) }
1683
1682
  end
1684
1683
 
1685
1684
  # Dispatch enter and leave events for HashNode nodes.
1685
+ #
1686
+ #: (HashNode node) -> void
1686
1687
  def visit_hash_node(node)
1687
1688
  listeners[:on_hash_node_enter]&.each { |listener| listener.on_hash_node_enter(node) }
1688
1689
  listeners[:on_hash_node_leave]&.each { |listener| listener.on_hash_node_leave(node) }
1689
1690
  end
1690
1691
 
1691
1692
  # Dispatch enter and leave events for HashPatternNode nodes.
1693
+ #
1694
+ #: (HashPatternNode node) -> void
1692
1695
  def visit_hash_pattern_node(node)
1693
1696
  listeners[:on_hash_pattern_node_enter]&.each { |listener| listener.on_hash_pattern_node_enter(node) }
1694
1697
  listeners[:on_hash_pattern_node_leave]&.each { |listener| listener.on_hash_pattern_node_leave(node) }
1695
1698
  end
1696
1699
 
1697
1700
  # Dispatch enter and leave events for IfNode nodes.
1701
+ #
1702
+ #: (IfNode node) -> void
1698
1703
  def visit_if_node(node)
1699
1704
  listeners[:on_if_node_enter]&.each { |listener| listener.on_if_node_enter(node) }
1700
1705
  listeners[:on_if_node_leave]&.each { |listener| listener.on_if_node_leave(node) }
1701
1706
  end
1702
1707
 
1703
1708
  # Dispatch enter and leave events for ImaginaryNode nodes.
1709
+ #
1710
+ #: (ImaginaryNode node) -> void
1704
1711
  def visit_imaginary_node(node)
1705
1712
  listeners[:on_imaginary_node_enter]&.each { |listener| listener.on_imaginary_node_enter(node) }
1706
1713
  listeners[:on_imaginary_node_leave]&.each { |listener| listener.on_imaginary_node_leave(node) }
1707
1714
  end
1708
1715
 
1709
1716
  # Dispatch enter and leave events for ImplicitNode nodes.
1717
+ #
1718
+ #: (ImplicitNode node) -> void
1710
1719
  def visit_implicit_node(node)
1711
1720
  listeners[:on_implicit_node_enter]&.each { |listener| listener.on_implicit_node_enter(node) }
1712
1721
  listeners[:on_implicit_node_leave]&.each { |listener| listener.on_implicit_node_leave(node) }
1713
1722
  end
1714
1723
 
1715
1724
  # Dispatch enter and leave events for ImplicitRestNode nodes.
1725
+ #
1726
+ #: (ImplicitRestNode node) -> void
1716
1727
  def visit_implicit_rest_node(node)
1717
1728
  listeners[:on_implicit_rest_node_enter]&.each { |listener| listener.on_implicit_rest_node_enter(node) }
1718
1729
  listeners[:on_implicit_rest_node_leave]&.each { |listener| listener.on_implicit_rest_node_leave(node) }
1719
1730
  end
1720
1731
 
1721
1732
  # Dispatch enter and leave events for InNode nodes.
1733
+ #
1734
+ #: (InNode node) -> void
1722
1735
  def visit_in_node(node)
1723
1736
  listeners[:on_in_node_enter]&.each { |listener| listener.on_in_node_enter(node) }
1724
1737
  listeners[:on_in_node_leave]&.each { |listener| listener.on_in_node_leave(node) }
1725
1738
  end
1726
1739
 
1727
1740
  # Dispatch enter and leave events for IndexAndWriteNode nodes.
1741
+ #
1742
+ #: (IndexAndWriteNode node) -> void
1728
1743
  def visit_index_and_write_node(node)
1729
1744
  listeners[:on_index_and_write_node_enter]&.each { |listener| listener.on_index_and_write_node_enter(node) }
1730
1745
  listeners[:on_index_and_write_node_leave]&.each { |listener| listener.on_index_and_write_node_leave(node) }
1731
1746
  end
1732
1747
 
1733
1748
  # Dispatch enter and leave events for IndexOperatorWriteNode nodes.
1749
+ #
1750
+ #: (IndexOperatorWriteNode node) -> void
1734
1751
  def visit_index_operator_write_node(node)
1735
1752
  listeners[:on_index_operator_write_node_enter]&.each { |listener| listener.on_index_operator_write_node_enter(node) }
1736
1753
  listeners[:on_index_operator_write_node_leave]&.each { |listener| listener.on_index_operator_write_node_leave(node) }
1737
1754
  end
1738
1755
 
1739
1756
  # Dispatch enter and leave events for IndexOrWriteNode nodes.
1757
+ #
1758
+ #: (IndexOrWriteNode node) -> void
1740
1759
  def visit_index_or_write_node(node)
1741
1760
  listeners[:on_index_or_write_node_enter]&.each { |listener| listener.on_index_or_write_node_enter(node) }
1742
1761
  listeners[:on_index_or_write_node_leave]&.each { |listener| listener.on_index_or_write_node_leave(node) }
1743
1762
  end
1744
1763
 
1745
1764
  # Dispatch enter and leave events for IndexTargetNode nodes.
1765
+ #
1766
+ #: (IndexTargetNode node) -> void
1746
1767
  def visit_index_target_node(node)
1747
1768
  listeners[:on_index_target_node_enter]&.each { |listener| listener.on_index_target_node_enter(node) }
1748
1769
  listeners[:on_index_target_node_leave]&.each { |listener| listener.on_index_target_node_leave(node) }
1749
1770
  end
1750
1771
 
1751
1772
  # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes.
1773
+ #
1774
+ #: (InstanceVariableAndWriteNode node) -> void
1752
1775
  def visit_instance_variable_and_write_node(node)
1753
1776
  listeners[:on_instance_variable_and_write_node_enter]&.each { |listener| listener.on_instance_variable_and_write_node_enter(node) }
1754
1777
  listeners[:on_instance_variable_and_write_node_leave]&.each { |listener| listener.on_instance_variable_and_write_node_leave(node) }
1755
1778
  end
1756
1779
 
1757
1780
  # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes.
1781
+ #
1782
+ #: (InstanceVariableOperatorWriteNode node) -> void
1758
1783
  def visit_instance_variable_operator_write_node(node)
1759
1784
  listeners[:on_instance_variable_operator_write_node_enter]&.each { |listener| listener.on_instance_variable_operator_write_node_enter(node) }
1760
1785
  listeners[:on_instance_variable_operator_write_node_leave]&.each { |listener| listener.on_instance_variable_operator_write_node_leave(node) }
1761
1786
  end
1762
1787
 
1763
1788
  # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes.
1789
+ #
1790
+ #: (InstanceVariableOrWriteNode node) -> void
1764
1791
  def visit_instance_variable_or_write_node(node)
1765
1792
  listeners[:on_instance_variable_or_write_node_enter]&.each { |listener| listener.on_instance_variable_or_write_node_enter(node) }
1766
1793
  listeners[:on_instance_variable_or_write_node_leave]&.each { |listener| listener.on_instance_variable_or_write_node_leave(node) }
1767
1794
  end
1768
1795
 
1769
1796
  # Dispatch enter and leave events for InstanceVariableReadNode nodes.
1797
+ #
1798
+ #: (InstanceVariableReadNode node) -> void
1770
1799
  def visit_instance_variable_read_node(node)
1771
1800
  listeners[:on_instance_variable_read_node_enter]&.each { |listener| listener.on_instance_variable_read_node_enter(node) }
1772
1801
  listeners[:on_instance_variable_read_node_leave]&.each { |listener| listener.on_instance_variable_read_node_leave(node) }
1773
1802
  end
1774
1803
 
1775
1804
  # Dispatch enter and leave events for InstanceVariableTargetNode nodes.
1805
+ #
1806
+ #: (InstanceVariableTargetNode node) -> void
1776
1807
  def visit_instance_variable_target_node(node)
1777
1808
  listeners[:on_instance_variable_target_node_enter]&.each { |listener| listener.on_instance_variable_target_node_enter(node) }
1778
1809
  listeners[:on_instance_variable_target_node_leave]&.each { |listener| listener.on_instance_variable_target_node_leave(node) }
1779
1810
  end
1780
1811
 
1781
1812
  # Dispatch enter and leave events for InstanceVariableWriteNode nodes.
1813
+ #
1814
+ #: (InstanceVariableWriteNode node) -> void
1782
1815
  def visit_instance_variable_write_node(node)
1783
1816
  listeners[:on_instance_variable_write_node_enter]&.each { |listener| listener.on_instance_variable_write_node_enter(node) }
1784
1817
  listeners[:on_instance_variable_write_node_leave]&.each { |listener| listener.on_instance_variable_write_node_leave(node) }
1785
1818
  end
1786
1819
 
1787
1820
  # Dispatch enter and leave events for IntegerNode nodes.
1821
+ #
1822
+ #: (IntegerNode node) -> void
1788
1823
  def visit_integer_node(node)
1789
1824
  listeners[:on_integer_node_enter]&.each { |listener| listener.on_integer_node_enter(node) }
1790
1825
  listeners[:on_integer_node_leave]&.each { |listener| listener.on_integer_node_leave(node) }
1791
1826
  end
1792
1827
 
1793
1828
  # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes.
1829
+ #
1830
+ #: (InterpolatedMatchLastLineNode node) -> void
1794
1831
  def visit_interpolated_match_last_line_node(node)
1795
1832
  listeners[:on_interpolated_match_last_line_node_enter]&.each { |listener| listener.on_interpolated_match_last_line_node_enter(node) }
1796
1833
  listeners[:on_interpolated_match_last_line_node_leave]&.each { |listener| listener.on_interpolated_match_last_line_node_leave(node) }
1797
1834
  end
1798
1835
 
1799
1836
  # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes.
1837
+ #
1838
+ #: (InterpolatedRegularExpressionNode node) -> void
1800
1839
  def visit_interpolated_regular_expression_node(node)
1801
1840
  listeners[:on_interpolated_regular_expression_node_enter]&.each { |listener| listener.on_interpolated_regular_expression_node_enter(node) }
1802
1841
  listeners[:on_interpolated_regular_expression_node_leave]&.each { |listener| listener.on_interpolated_regular_expression_node_leave(node) }
1803
1842
  end
1804
1843
 
1805
1844
  # Dispatch enter and leave events for InterpolatedStringNode nodes.
1845
+ #
1846
+ #: (InterpolatedStringNode node) -> void
1806
1847
  def visit_interpolated_string_node(node)
1807
1848
  listeners[:on_interpolated_string_node_enter]&.each { |listener| listener.on_interpolated_string_node_enter(node) }
1808
1849
  listeners[:on_interpolated_string_node_leave]&.each { |listener| listener.on_interpolated_string_node_leave(node) }
1809
1850
  end
1810
1851
 
1811
1852
  # Dispatch enter and leave events for InterpolatedSymbolNode nodes.
1853
+ #
1854
+ #: (InterpolatedSymbolNode node) -> void
1812
1855
  def visit_interpolated_symbol_node(node)
1813
1856
  listeners[:on_interpolated_symbol_node_enter]&.each { |listener| listener.on_interpolated_symbol_node_enter(node) }
1814
1857
  listeners[:on_interpolated_symbol_node_leave]&.each { |listener| listener.on_interpolated_symbol_node_leave(node) }
1815
1858
  end
1816
1859
 
1817
1860
  # Dispatch enter and leave events for InterpolatedXStringNode nodes.
1861
+ #
1862
+ #: (InterpolatedXStringNode node) -> void
1818
1863
  def visit_interpolated_x_string_node(node)
1819
1864
  listeners[:on_interpolated_x_string_node_enter]&.each { |listener| listener.on_interpolated_x_string_node_enter(node) }
1820
1865
  listeners[:on_interpolated_x_string_node_leave]&.each { |listener| listener.on_interpolated_x_string_node_leave(node) }
1821
1866
  end
1822
1867
 
1823
1868
  # Dispatch enter and leave events for ItLocalVariableReadNode nodes.
1869
+ #
1870
+ #: (ItLocalVariableReadNode node) -> void
1824
1871
  def visit_it_local_variable_read_node(node)
1825
1872
  listeners[:on_it_local_variable_read_node_enter]&.each { |listener| listener.on_it_local_variable_read_node_enter(node) }
1826
1873
  listeners[:on_it_local_variable_read_node_leave]&.each { |listener| listener.on_it_local_variable_read_node_leave(node) }
1827
1874
  end
1828
1875
 
1829
1876
  # Dispatch enter and leave events for ItParametersNode nodes.
1877
+ #
1878
+ #: (ItParametersNode node) -> void
1830
1879
  def visit_it_parameters_node(node)
1831
1880
  listeners[:on_it_parameters_node_enter]&.each { |listener| listener.on_it_parameters_node_enter(node) }
1832
1881
  listeners[:on_it_parameters_node_leave]&.each { |listener| listener.on_it_parameters_node_leave(node) }
1833
1882
  end
1834
1883
 
1835
1884
  # Dispatch enter and leave events for KeywordHashNode nodes.
1885
+ #
1886
+ #: (KeywordHashNode node) -> void
1836
1887
  def visit_keyword_hash_node(node)
1837
1888
  listeners[:on_keyword_hash_node_enter]&.each { |listener| listener.on_keyword_hash_node_enter(node) }
1838
1889
  listeners[:on_keyword_hash_node_leave]&.each { |listener| listener.on_keyword_hash_node_leave(node) }
1839
1890
  end
1840
1891
 
1841
1892
  # Dispatch enter and leave events for KeywordRestParameterNode nodes.
1893
+ #
1894
+ #: (KeywordRestParameterNode node) -> void
1842
1895
  def visit_keyword_rest_parameter_node(node)
1843
1896
  listeners[:on_keyword_rest_parameter_node_enter]&.each { |listener| listener.on_keyword_rest_parameter_node_enter(node) }
1844
1897
  listeners[:on_keyword_rest_parameter_node_leave]&.each { |listener| listener.on_keyword_rest_parameter_node_leave(node) }
1845
1898
  end
1846
1899
 
1847
1900
  # Dispatch enter and leave events for LambdaNode nodes.
1901
+ #
1902
+ #: (LambdaNode node) -> void
1848
1903
  def visit_lambda_node(node)
1849
1904
  listeners[:on_lambda_node_enter]&.each { |listener| listener.on_lambda_node_enter(node) }
1850
1905
  listeners[:on_lambda_node_leave]&.each { |listener| listener.on_lambda_node_leave(node) }
1851
1906
  end
1852
1907
 
1853
1908
  # Dispatch enter and leave events for LocalVariableAndWriteNode nodes.
1909
+ #
1910
+ #: (LocalVariableAndWriteNode node) -> void
1854
1911
  def visit_local_variable_and_write_node(node)
1855
1912
  listeners[:on_local_variable_and_write_node_enter]&.each { |listener| listener.on_local_variable_and_write_node_enter(node) }
1856
1913
  listeners[:on_local_variable_and_write_node_leave]&.each { |listener| listener.on_local_variable_and_write_node_leave(node) }
1857
1914
  end
1858
1915
 
1859
1916
  # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes.
1917
+ #
1918
+ #: (LocalVariableOperatorWriteNode node) -> void
1860
1919
  def visit_local_variable_operator_write_node(node)
1861
1920
  listeners[:on_local_variable_operator_write_node_enter]&.each { |listener| listener.on_local_variable_operator_write_node_enter(node) }
1862
1921
  listeners[:on_local_variable_operator_write_node_leave]&.each { |listener| listener.on_local_variable_operator_write_node_leave(node) }
1863
1922
  end
1864
1923
 
1865
1924
  # Dispatch enter and leave events for LocalVariableOrWriteNode nodes.
1925
+ #
1926
+ #: (LocalVariableOrWriteNode node) -> void
1866
1927
  def visit_local_variable_or_write_node(node)
1867
1928
  listeners[:on_local_variable_or_write_node_enter]&.each { |listener| listener.on_local_variable_or_write_node_enter(node) }
1868
1929
  listeners[:on_local_variable_or_write_node_leave]&.each { |listener| listener.on_local_variable_or_write_node_leave(node) }
1869
1930
  end
1870
1931
 
1871
1932
  # Dispatch enter and leave events for LocalVariableReadNode nodes.
1933
+ #
1934
+ #: (LocalVariableReadNode node) -> void
1872
1935
  def visit_local_variable_read_node(node)
1873
1936
  listeners[:on_local_variable_read_node_enter]&.each { |listener| listener.on_local_variable_read_node_enter(node) }
1874
1937
  listeners[:on_local_variable_read_node_leave]&.each { |listener| listener.on_local_variable_read_node_leave(node) }
1875
1938
  end
1876
1939
 
1877
1940
  # Dispatch enter and leave events for LocalVariableTargetNode nodes.
1941
+ #
1942
+ #: (LocalVariableTargetNode node) -> void
1878
1943
  def visit_local_variable_target_node(node)
1879
1944
  listeners[:on_local_variable_target_node_enter]&.each { |listener| listener.on_local_variable_target_node_enter(node) }
1880
1945
  listeners[:on_local_variable_target_node_leave]&.each { |listener| listener.on_local_variable_target_node_leave(node) }
1881
1946
  end
1882
1947
 
1883
1948
  # Dispatch enter and leave events for LocalVariableWriteNode nodes.
1949
+ #
1950
+ #: (LocalVariableWriteNode node) -> void
1884
1951
  def visit_local_variable_write_node(node)
1885
1952
  listeners[:on_local_variable_write_node_enter]&.each { |listener| listener.on_local_variable_write_node_enter(node) }
1886
1953
  listeners[:on_local_variable_write_node_leave]&.each { |listener| listener.on_local_variable_write_node_leave(node) }
1887
1954
  end
1888
1955
 
1889
1956
  # Dispatch enter and leave events for MatchLastLineNode nodes.
1957
+ #
1958
+ #: (MatchLastLineNode node) -> void
1890
1959
  def visit_match_last_line_node(node)
1891
1960
  listeners[:on_match_last_line_node_enter]&.each { |listener| listener.on_match_last_line_node_enter(node) }
1892
1961
  listeners[:on_match_last_line_node_leave]&.each { |listener| listener.on_match_last_line_node_leave(node) }
1893
1962
  end
1894
1963
 
1895
1964
  # Dispatch enter and leave events for MatchPredicateNode nodes.
1965
+ #
1966
+ #: (MatchPredicateNode node) -> void
1896
1967
  def visit_match_predicate_node(node)
1897
1968
  listeners[:on_match_predicate_node_enter]&.each { |listener| listener.on_match_predicate_node_enter(node) }
1898
1969
  listeners[:on_match_predicate_node_leave]&.each { |listener| listener.on_match_predicate_node_leave(node) }
1899
1970
  end
1900
1971
 
1901
1972
  # Dispatch enter and leave events for MatchRequiredNode nodes.
1973
+ #
1974
+ #: (MatchRequiredNode node) -> void
1902
1975
  def visit_match_required_node(node)
1903
1976
  listeners[:on_match_required_node_enter]&.each { |listener| listener.on_match_required_node_enter(node) }
1904
1977
  listeners[:on_match_required_node_leave]&.each { |listener| listener.on_match_required_node_leave(node) }
1905
1978
  end
1906
1979
 
1907
1980
  # Dispatch enter and leave events for MatchWriteNode nodes.
1981
+ #
1982
+ #: (MatchWriteNode node) -> void
1908
1983
  def visit_match_write_node(node)
1909
1984
  listeners[:on_match_write_node_enter]&.each { |listener| listener.on_match_write_node_enter(node) }
1910
1985
  listeners[:on_match_write_node_leave]&.each { |listener| listener.on_match_write_node_leave(node) }
1911
1986
  end
1912
1987
 
1913
- # Dispatch enter and leave events for MissingNode nodes.
1914
- def visit_missing_node(node)
1915
- listeners[:on_missing_node_enter]&.each { |listener| listener.on_missing_node_enter(node) }
1916
- listeners[:on_missing_node_leave]&.each { |listener| listener.on_missing_node_leave(node) }
1917
- end
1918
-
1919
1988
  # Dispatch enter and leave events for ModuleNode nodes.
1989
+ #
1990
+ #: (ModuleNode node) -> void
1920
1991
  def visit_module_node(node)
1921
1992
  listeners[:on_module_node_enter]&.each { |listener| listener.on_module_node_enter(node) }
1922
1993
  listeners[:on_module_node_leave]&.each { |listener| listener.on_module_node_leave(node) }
1923
1994
  end
1924
1995
 
1925
1996
  # Dispatch enter and leave events for MultiTargetNode nodes.
1997
+ #
1998
+ #: (MultiTargetNode node) -> void
1926
1999
  def visit_multi_target_node(node)
1927
2000
  listeners[:on_multi_target_node_enter]&.each { |listener| listener.on_multi_target_node_enter(node) }
1928
2001
  listeners[:on_multi_target_node_leave]&.each { |listener| listener.on_multi_target_node_leave(node) }
1929
2002
  end
1930
2003
 
1931
2004
  # Dispatch enter and leave events for MultiWriteNode nodes.
2005
+ #
2006
+ #: (MultiWriteNode node) -> void
1932
2007
  def visit_multi_write_node(node)
1933
2008
  listeners[:on_multi_write_node_enter]&.each { |listener| listener.on_multi_write_node_enter(node) }
1934
2009
  listeners[:on_multi_write_node_leave]&.each { |listener| listener.on_multi_write_node_leave(node) }
1935
2010
  end
1936
2011
 
1937
2012
  # Dispatch enter and leave events for NextNode nodes.
2013
+ #
2014
+ #: (NextNode node) -> void
1938
2015
  def visit_next_node(node)
1939
2016
  listeners[:on_next_node_enter]&.each { |listener| listener.on_next_node_enter(node) }
1940
2017
  listeners[:on_next_node_leave]&.each { |listener| listener.on_next_node_leave(node) }
1941
2018
  end
1942
2019
 
1943
2020
  # Dispatch enter and leave events for NilNode nodes.
2021
+ #
2022
+ #: (NilNode node) -> void
1944
2023
  def visit_nil_node(node)
1945
2024
  listeners[:on_nil_node_enter]&.each { |listener| listener.on_nil_node_enter(node) }
1946
2025
  listeners[:on_nil_node_leave]&.each { |listener| listener.on_nil_node_leave(node) }
1947
2026
  end
1948
2027
 
2028
+ # Dispatch enter and leave events for NoBlockParameterNode nodes.
2029
+ #
2030
+ #: (NoBlockParameterNode node) -> void
2031
+ def visit_no_block_parameter_node(node)
2032
+ listeners[:on_no_block_parameter_node_enter]&.each { |listener| listener.on_no_block_parameter_node_enter(node) }
2033
+ listeners[:on_no_block_parameter_node_leave]&.each { |listener| listener.on_no_block_parameter_node_leave(node) }
2034
+ end
2035
+
1949
2036
  # Dispatch enter and leave events for NoKeywordsParameterNode nodes.
2037
+ #
2038
+ #: (NoKeywordsParameterNode node) -> void
1950
2039
  def visit_no_keywords_parameter_node(node)
1951
2040
  listeners[:on_no_keywords_parameter_node_enter]&.each { |listener| listener.on_no_keywords_parameter_node_enter(node) }
1952
2041
  listeners[:on_no_keywords_parameter_node_leave]&.each { |listener| listener.on_no_keywords_parameter_node_leave(node) }
1953
2042
  end
1954
2043
 
1955
2044
  # Dispatch enter and leave events for NumberedParametersNode nodes.
2045
+ #
2046
+ #: (NumberedParametersNode node) -> void
1956
2047
  def visit_numbered_parameters_node(node)
1957
2048
  listeners[:on_numbered_parameters_node_enter]&.each { |listener| listener.on_numbered_parameters_node_enter(node) }
1958
2049
  listeners[:on_numbered_parameters_node_leave]&.each { |listener| listener.on_numbered_parameters_node_leave(node) }
1959
2050
  end
1960
2051
 
1961
2052
  # Dispatch enter and leave events for NumberedReferenceReadNode nodes.
2053
+ #
2054
+ #: (NumberedReferenceReadNode node) -> void
1962
2055
  def visit_numbered_reference_read_node(node)
1963
2056
  listeners[:on_numbered_reference_read_node_enter]&.each { |listener| listener.on_numbered_reference_read_node_enter(node) }
1964
2057
  listeners[:on_numbered_reference_read_node_leave]&.each { |listener| listener.on_numbered_reference_read_node_leave(node) }
1965
2058
  end
1966
2059
 
1967
2060
  # Dispatch enter and leave events for OptionalKeywordParameterNode nodes.
2061
+ #
2062
+ #: (OptionalKeywordParameterNode node) -> void
1968
2063
  def visit_optional_keyword_parameter_node(node)
1969
2064
  listeners[:on_optional_keyword_parameter_node_enter]&.each { |listener| listener.on_optional_keyword_parameter_node_enter(node) }
1970
2065
  listeners[:on_optional_keyword_parameter_node_leave]&.each { |listener| listener.on_optional_keyword_parameter_node_leave(node) }
1971
2066
  end
1972
2067
 
1973
2068
  # Dispatch enter and leave events for OptionalParameterNode nodes.
2069
+ #
2070
+ #: (OptionalParameterNode node) -> void
1974
2071
  def visit_optional_parameter_node(node)
1975
2072
  listeners[:on_optional_parameter_node_enter]&.each { |listener| listener.on_optional_parameter_node_enter(node) }
1976
2073
  listeners[:on_optional_parameter_node_leave]&.each { |listener| listener.on_optional_parameter_node_leave(node) }
1977
2074
  end
1978
2075
 
1979
2076
  # Dispatch enter and leave events for OrNode nodes.
2077
+ #
2078
+ #: (OrNode node) -> void
1980
2079
  def visit_or_node(node)
1981
2080
  listeners[:on_or_node_enter]&.each { |listener| listener.on_or_node_enter(node) }
1982
2081
  listeners[:on_or_node_leave]&.each { |listener| listener.on_or_node_leave(node) }
1983
2082
  end
1984
2083
 
1985
2084
  # Dispatch enter and leave events for ParametersNode nodes.
2085
+ #
2086
+ #: (ParametersNode node) -> void
1986
2087
  def visit_parameters_node(node)
1987
2088
  listeners[:on_parameters_node_enter]&.each { |listener| listener.on_parameters_node_enter(node) }
1988
2089
  listeners[:on_parameters_node_leave]&.each { |listener| listener.on_parameters_node_leave(node) }
1989
2090
  end
1990
2091
 
1991
2092
  # Dispatch enter and leave events for ParenthesesNode nodes.
2093
+ #
2094
+ #: (ParenthesesNode node) -> void
1992
2095
  def visit_parentheses_node(node)
1993
2096
  listeners[:on_parentheses_node_enter]&.each { |listener| listener.on_parentheses_node_enter(node) }
1994
2097
  listeners[:on_parentheses_node_leave]&.each { |listener| listener.on_parentheses_node_leave(node) }
1995
2098
  end
1996
2099
 
1997
2100
  # Dispatch enter and leave events for PinnedExpressionNode nodes.
2101
+ #
2102
+ #: (PinnedExpressionNode node) -> void
1998
2103
  def visit_pinned_expression_node(node)
1999
2104
  listeners[:on_pinned_expression_node_enter]&.each { |listener| listener.on_pinned_expression_node_enter(node) }
2000
2105
  listeners[:on_pinned_expression_node_leave]&.each { |listener| listener.on_pinned_expression_node_leave(node) }
2001
2106
  end
2002
2107
 
2003
2108
  # Dispatch enter and leave events for PinnedVariableNode nodes.
2109
+ #
2110
+ #: (PinnedVariableNode node) -> void
2004
2111
  def visit_pinned_variable_node(node)
2005
2112
  listeners[:on_pinned_variable_node_enter]&.each { |listener| listener.on_pinned_variable_node_enter(node) }
2006
2113
  listeners[:on_pinned_variable_node_leave]&.each { |listener| listener.on_pinned_variable_node_leave(node) }
2007
2114
  end
2008
2115
 
2009
2116
  # Dispatch enter and leave events for PostExecutionNode nodes.
2117
+ #
2118
+ #: (PostExecutionNode node) -> void
2010
2119
  def visit_post_execution_node(node)
2011
2120
  listeners[:on_post_execution_node_enter]&.each { |listener| listener.on_post_execution_node_enter(node) }
2012
2121
  listeners[:on_post_execution_node_leave]&.each { |listener| listener.on_post_execution_node_leave(node) }
2013
2122
  end
2014
2123
 
2015
2124
  # Dispatch enter and leave events for PreExecutionNode nodes.
2125
+ #
2126
+ #: (PreExecutionNode node) -> void
2016
2127
  def visit_pre_execution_node(node)
2017
2128
  listeners[:on_pre_execution_node_enter]&.each { |listener| listener.on_pre_execution_node_enter(node) }
2018
2129
  listeners[:on_pre_execution_node_leave]&.each { |listener| listener.on_pre_execution_node_leave(node) }
2019
2130
  end
2020
2131
 
2021
2132
  # Dispatch enter and leave events for ProgramNode nodes.
2133
+ #
2134
+ #: (ProgramNode node) -> void
2022
2135
  def visit_program_node(node)
2023
2136
  listeners[:on_program_node_enter]&.each { |listener| listener.on_program_node_enter(node) }
2024
2137
  listeners[:on_program_node_leave]&.each { |listener| listener.on_program_node_leave(node) }
2025
2138
  end
2026
2139
 
2027
2140
  # Dispatch enter and leave events for RangeNode nodes.
2141
+ #
2142
+ #: (RangeNode node) -> void
2028
2143
  def visit_range_node(node)
2029
2144
  listeners[:on_range_node_enter]&.each { |listener| listener.on_range_node_enter(node) }
2030
2145
  listeners[:on_range_node_leave]&.each { |listener| listener.on_range_node_leave(node) }
2031
2146
  end
2032
2147
 
2033
2148
  # Dispatch enter and leave events for RationalNode nodes.
2149
+ #
2150
+ #: (RationalNode node) -> void
2034
2151
  def visit_rational_node(node)
2035
2152
  listeners[:on_rational_node_enter]&.each { |listener| listener.on_rational_node_enter(node) }
2036
2153
  listeners[:on_rational_node_leave]&.each { |listener| listener.on_rational_node_leave(node) }
2037
2154
  end
2038
2155
 
2039
2156
  # Dispatch enter and leave events for RedoNode nodes.
2157
+ #
2158
+ #: (RedoNode node) -> void
2040
2159
  def visit_redo_node(node)
2041
2160
  listeners[:on_redo_node_enter]&.each { |listener| listener.on_redo_node_enter(node) }
2042
2161
  listeners[:on_redo_node_leave]&.each { |listener| listener.on_redo_node_leave(node) }
2043
2162
  end
2044
2163
 
2045
2164
  # Dispatch enter and leave events for RegularExpressionNode nodes.
2165
+ #
2166
+ #: (RegularExpressionNode node) -> void
2046
2167
  def visit_regular_expression_node(node)
2047
2168
  listeners[:on_regular_expression_node_enter]&.each { |listener| listener.on_regular_expression_node_enter(node) }
2048
2169
  listeners[:on_regular_expression_node_leave]&.each { |listener| listener.on_regular_expression_node_leave(node) }
2049
2170
  end
2050
2171
 
2051
2172
  # Dispatch enter and leave events for RequiredKeywordParameterNode nodes.
2173
+ #
2174
+ #: (RequiredKeywordParameterNode node) -> void
2052
2175
  def visit_required_keyword_parameter_node(node)
2053
2176
  listeners[:on_required_keyword_parameter_node_enter]&.each { |listener| listener.on_required_keyword_parameter_node_enter(node) }
2054
2177
  listeners[:on_required_keyword_parameter_node_leave]&.each { |listener| listener.on_required_keyword_parameter_node_leave(node) }
2055
2178
  end
2056
2179
 
2057
2180
  # Dispatch enter and leave events for RequiredParameterNode nodes.
2181
+ #
2182
+ #: (RequiredParameterNode node) -> void
2058
2183
  def visit_required_parameter_node(node)
2059
2184
  listeners[:on_required_parameter_node_enter]&.each { |listener| listener.on_required_parameter_node_enter(node) }
2060
2185
  listeners[:on_required_parameter_node_leave]&.each { |listener| listener.on_required_parameter_node_leave(node) }
2061
2186
  end
2062
2187
 
2063
2188
  # Dispatch enter and leave events for RescueModifierNode nodes.
2189
+ #
2190
+ #: (RescueModifierNode node) -> void
2064
2191
  def visit_rescue_modifier_node(node)
2065
2192
  listeners[:on_rescue_modifier_node_enter]&.each { |listener| listener.on_rescue_modifier_node_enter(node) }
2066
2193
  listeners[:on_rescue_modifier_node_leave]&.each { |listener| listener.on_rescue_modifier_node_leave(node) }
2067
2194
  end
2068
2195
 
2069
2196
  # Dispatch enter and leave events for RescueNode nodes.
2197
+ #
2198
+ #: (RescueNode node) -> void
2070
2199
  def visit_rescue_node(node)
2071
2200
  listeners[:on_rescue_node_enter]&.each { |listener| listener.on_rescue_node_enter(node) }
2072
2201
  listeners[:on_rescue_node_leave]&.each { |listener| listener.on_rescue_node_leave(node) }
2073
2202
  end
2074
2203
 
2075
2204
  # Dispatch enter and leave events for RestParameterNode nodes.
2205
+ #
2206
+ #: (RestParameterNode node) -> void
2076
2207
  def visit_rest_parameter_node(node)
2077
2208
  listeners[:on_rest_parameter_node_enter]&.each { |listener| listener.on_rest_parameter_node_enter(node) }
2078
2209
  listeners[:on_rest_parameter_node_leave]&.each { |listener| listener.on_rest_parameter_node_leave(node) }
2079
2210
  end
2080
2211
 
2081
2212
  # Dispatch enter and leave events for RetryNode nodes.
2213
+ #
2214
+ #: (RetryNode node) -> void
2082
2215
  def visit_retry_node(node)
2083
2216
  listeners[:on_retry_node_enter]&.each { |listener| listener.on_retry_node_enter(node) }
2084
2217
  listeners[:on_retry_node_leave]&.each { |listener| listener.on_retry_node_leave(node) }
2085
2218
  end
2086
2219
 
2087
2220
  # Dispatch enter and leave events for ReturnNode nodes.
2221
+ #
2222
+ #: (ReturnNode node) -> void
2088
2223
  def visit_return_node(node)
2089
2224
  listeners[:on_return_node_enter]&.each { |listener| listener.on_return_node_enter(node) }
2090
2225
  listeners[:on_return_node_leave]&.each { |listener| listener.on_return_node_leave(node) }
2091
2226
  end
2092
2227
 
2093
2228
  # Dispatch enter and leave events for SelfNode nodes.
2229
+ #
2230
+ #: (SelfNode node) -> void
2094
2231
  def visit_self_node(node)
2095
2232
  listeners[:on_self_node_enter]&.each { |listener| listener.on_self_node_enter(node) }
2096
2233
  listeners[:on_self_node_leave]&.each { |listener| listener.on_self_node_leave(node) }
2097
2234
  end
2098
2235
 
2099
2236
  # Dispatch enter and leave events for ShareableConstantNode nodes.
2237
+ #
2238
+ #: (ShareableConstantNode node) -> void
2100
2239
  def visit_shareable_constant_node(node)
2101
2240
  listeners[:on_shareable_constant_node_enter]&.each { |listener| listener.on_shareable_constant_node_enter(node) }
2102
2241
  listeners[:on_shareable_constant_node_leave]&.each { |listener| listener.on_shareable_constant_node_leave(node) }
2103
2242
  end
2104
2243
 
2105
2244
  # Dispatch enter and leave events for SingletonClassNode nodes.
2245
+ #
2246
+ #: (SingletonClassNode node) -> void
2106
2247
  def visit_singleton_class_node(node)
2107
2248
  listeners[:on_singleton_class_node_enter]&.each { |listener| listener.on_singleton_class_node_enter(node) }
2108
2249
  listeners[:on_singleton_class_node_leave]&.each { |listener| listener.on_singleton_class_node_leave(node) }
2109
2250
  end
2110
2251
 
2111
2252
  # Dispatch enter and leave events for SourceEncodingNode nodes.
2253
+ #
2254
+ #: (SourceEncodingNode node) -> void
2112
2255
  def visit_source_encoding_node(node)
2113
2256
  listeners[:on_source_encoding_node_enter]&.each { |listener| listener.on_source_encoding_node_enter(node) }
2114
2257
  listeners[:on_source_encoding_node_leave]&.each { |listener| listener.on_source_encoding_node_leave(node) }
2115
2258
  end
2116
2259
 
2117
2260
  # Dispatch enter and leave events for SourceFileNode nodes.
2261
+ #
2262
+ #: (SourceFileNode node) -> void
2118
2263
  def visit_source_file_node(node)
2119
2264
  listeners[:on_source_file_node_enter]&.each { |listener| listener.on_source_file_node_enter(node) }
2120
2265
  listeners[:on_source_file_node_leave]&.each { |listener| listener.on_source_file_node_leave(node) }
2121
2266
  end
2122
2267
 
2123
2268
  # Dispatch enter and leave events for SourceLineNode nodes.
2269
+ #
2270
+ #: (SourceLineNode node) -> void
2124
2271
  def visit_source_line_node(node)
2125
2272
  listeners[:on_source_line_node_enter]&.each { |listener| listener.on_source_line_node_enter(node) }
2126
2273
  listeners[:on_source_line_node_leave]&.each { |listener| listener.on_source_line_node_leave(node) }
2127
2274
  end
2128
2275
 
2129
2276
  # Dispatch enter and leave events for SplatNode nodes.
2277
+ #
2278
+ #: (SplatNode node) -> void
2130
2279
  def visit_splat_node(node)
2131
2280
  listeners[:on_splat_node_enter]&.each { |listener| listener.on_splat_node_enter(node) }
2132
2281
  listeners[:on_splat_node_leave]&.each { |listener| listener.on_splat_node_leave(node) }
2133
2282
  end
2134
2283
 
2135
2284
  # Dispatch enter and leave events for StatementsNode nodes.
2285
+ #
2286
+ #: (StatementsNode node) -> void
2136
2287
  def visit_statements_node(node)
2137
2288
  listeners[:on_statements_node_enter]&.each { |listener| listener.on_statements_node_enter(node) }
2138
2289
  listeners[:on_statements_node_leave]&.each { |listener| listener.on_statements_node_leave(node) }
2139
2290
  end
2140
2291
 
2141
2292
  # Dispatch enter and leave events for StringNode nodes.
2293
+ #
2294
+ #: (StringNode node) -> void
2142
2295
  def visit_string_node(node)
2143
2296
  listeners[:on_string_node_enter]&.each { |listener| listener.on_string_node_enter(node) }
2144
2297
  listeners[:on_string_node_leave]&.each { |listener| listener.on_string_node_leave(node) }
2145
2298
  end
2146
2299
 
2147
2300
  # Dispatch enter and leave events for SuperNode nodes.
2301
+ #
2302
+ #: (SuperNode node) -> void
2148
2303
  def visit_super_node(node)
2149
2304
  listeners[:on_super_node_enter]&.each { |listener| listener.on_super_node_enter(node) }
2150
2305
  listeners[:on_super_node_leave]&.each { |listener| listener.on_super_node_leave(node) }
2151
2306
  end
2152
2307
 
2153
2308
  # Dispatch enter and leave events for SymbolNode nodes.
2309
+ #
2310
+ #: (SymbolNode node) -> void
2154
2311
  def visit_symbol_node(node)
2155
2312
  listeners[:on_symbol_node_enter]&.each { |listener| listener.on_symbol_node_enter(node) }
2156
2313
  listeners[:on_symbol_node_leave]&.each { |listener| listener.on_symbol_node_leave(node) }
2157
2314
  end
2158
2315
 
2159
2316
  # Dispatch enter and leave events for TrueNode nodes.
2317
+ #
2318
+ #: (TrueNode node) -> void
2160
2319
  def visit_true_node(node)
2161
2320
  listeners[:on_true_node_enter]&.each { |listener| listener.on_true_node_enter(node) }
2162
2321
  listeners[:on_true_node_leave]&.each { |listener| listener.on_true_node_leave(node) }
2163
2322
  end
2164
2323
 
2165
2324
  # Dispatch enter and leave events for UndefNode nodes.
2325
+ #
2326
+ #: (UndefNode node) -> void
2166
2327
  def visit_undef_node(node)
2167
2328
  listeners[:on_undef_node_enter]&.each { |listener| listener.on_undef_node_enter(node) }
2168
2329
  listeners[:on_undef_node_leave]&.each { |listener| listener.on_undef_node_leave(node) }
2169
2330
  end
2170
2331
 
2171
2332
  # Dispatch enter and leave events for UnlessNode nodes.
2333
+ #
2334
+ #: (UnlessNode node) -> void
2172
2335
  def visit_unless_node(node)
2173
2336
  listeners[:on_unless_node_enter]&.each { |listener| listener.on_unless_node_enter(node) }
2174
2337
  listeners[:on_unless_node_leave]&.each { |listener| listener.on_unless_node_leave(node) }
2175
2338
  end
2176
2339
 
2177
2340
  # Dispatch enter and leave events for UntilNode nodes.
2341
+ #
2342
+ #: (UntilNode node) -> void
2178
2343
  def visit_until_node(node)
2179
2344
  listeners[:on_until_node_enter]&.each { |listener| listener.on_until_node_enter(node) }
2180
2345
  listeners[:on_until_node_leave]&.each { |listener| listener.on_until_node_leave(node) }
2181
2346
  end
2182
2347
 
2183
2348
  # Dispatch enter and leave events for WhenNode nodes.
2349
+ #
2350
+ #: (WhenNode node) -> void
2184
2351
  def visit_when_node(node)
2185
2352
  listeners[:on_when_node_enter]&.each { |listener| listener.on_when_node_enter(node) }
2186
2353
  listeners[:on_when_node_leave]&.each { |listener| listener.on_when_node_leave(node) }
2187
2354
  end
2188
2355
 
2189
2356
  # Dispatch enter and leave events for WhileNode nodes.
2357
+ #
2358
+ #: (WhileNode node) -> void
2190
2359
  def visit_while_node(node)
2191
2360
  listeners[:on_while_node_enter]&.each { |listener| listener.on_while_node_enter(node) }
2192
2361
  listeners[:on_while_node_leave]&.each { |listener| listener.on_while_node_leave(node) }
2193
2362
  end
2194
2363
 
2195
2364
  # Dispatch enter and leave events for XStringNode nodes.
2365
+ #
2366
+ #: (XStringNode node) -> void
2196
2367
  def visit_x_string_node(node)
2197
2368
  listeners[:on_x_string_node_enter]&.each { |listener| listener.on_x_string_node_enter(node) }
2198
2369
  listeners[:on_x_string_node_leave]&.each { |listener| listener.on_x_string_node_leave(node) }
2199
2370
  end
2200
2371
 
2201
2372
  # Dispatch enter and leave events for YieldNode nodes.
2373
+ #
2374
+ #: (YieldNode node) -> void
2202
2375
  def visit_yield_node(node)
2203
2376
  listeners[:on_yield_node_enter]&.each { |listener| listener.on_yield_node_enter(node) }
2204
2377
  listeners[:on_yield_node_leave]&.each { |listener| listener.on_yield_node_leave(node) }