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