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,305 @@
|
|
|
1
|
+
# Generated from lib/prism/desugar_compiler.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Prism
|
|
4
|
+
class DesugarAndWriteNode
|
|
5
|
+
include DSL
|
|
6
|
+
|
|
7
|
+
attr_reader node: ClassVariableAndWriteNode | ConstantAndWriteNode | GlobalVariableAndWriteNode | InstanceVariableAndWriteNode | LocalVariableAndWriteNode
|
|
8
|
+
|
|
9
|
+
attr_reader default_source: Source
|
|
10
|
+
|
|
11
|
+
attr_reader read_class: Symbol
|
|
12
|
+
|
|
13
|
+
attr_reader write_class: Symbol
|
|
14
|
+
|
|
15
|
+
attr_reader arguments: Hash[Symbol, untyped]
|
|
16
|
+
|
|
17
|
+
# : ((ClassVariableAndWriteNode | ConstantAndWriteNode | GlobalVariableAndWriteNode | InstanceVariableAndWriteNode | LocalVariableAndWriteNode) node, Source default_source, Symbol read_class, Symbol write_class, **untyped arguments) -> void
|
|
18
|
+
def initialize: (ClassVariableAndWriteNode | ConstantAndWriteNode | GlobalVariableAndWriteNode | InstanceVariableAndWriteNode | LocalVariableAndWriteNode node, Source default_source, Symbol read_class, Symbol write_class, **untyped arguments) -> void
|
|
19
|
+
|
|
20
|
+
# Desugar `x &&= y` to `x && x = y`
|
|
21
|
+
#
|
|
22
|
+
# : () -> node
|
|
23
|
+
def compile: () -> node
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
class DesugarOrWriteDefinedNode
|
|
27
|
+
include DSL
|
|
28
|
+
|
|
29
|
+
attr_reader node: ClassVariableOrWriteNode | ConstantOrWriteNode | GlobalVariableOrWriteNode
|
|
30
|
+
|
|
31
|
+
attr_reader default_source: Source
|
|
32
|
+
|
|
33
|
+
attr_reader read_class: Symbol
|
|
34
|
+
|
|
35
|
+
attr_reader write_class: Symbol
|
|
36
|
+
|
|
37
|
+
attr_reader arguments: Hash[Symbol, untyped]
|
|
38
|
+
|
|
39
|
+
# : ((ClassVariableOrWriteNode | ConstantOrWriteNode | GlobalVariableOrWriteNode) node, Source default_source, Symbol read_class, Symbol write_class, **untyped arguments) -> void
|
|
40
|
+
def initialize: (ClassVariableOrWriteNode | ConstantOrWriteNode | GlobalVariableOrWriteNode node, Source default_source, Symbol read_class, Symbol write_class, **untyped arguments) -> void
|
|
41
|
+
|
|
42
|
+
# Desugar `x ||= y` to `defined?(x) ? x : x = y`
|
|
43
|
+
#
|
|
44
|
+
# : () -> node
|
|
45
|
+
def compile: () -> node
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
class DesugarOperatorWriteNode
|
|
49
|
+
include DSL
|
|
50
|
+
|
|
51
|
+
attr_reader node: ClassVariableOperatorWriteNode | ConstantOperatorWriteNode | GlobalVariableOperatorWriteNode | InstanceVariableOperatorWriteNode | LocalVariableOperatorWriteNode
|
|
52
|
+
|
|
53
|
+
attr_reader default_source: Source
|
|
54
|
+
|
|
55
|
+
attr_reader read_class: Symbol
|
|
56
|
+
|
|
57
|
+
attr_reader write_class: Symbol
|
|
58
|
+
|
|
59
|
+
attr_reader arguments: Hash[Symbol, untyped]
|
|
60
|
+
|
|
61
|
+
# : ((ClassVariableOperatorWriteNode | ConstantOperatorWriteNode | GlobalVariableOperatorWriteNode | InstanceVariableOperatorWriteNode | LocalVariableOperatorWriteNode) node, Source default_source, Symbol read_class, Symbol write_class, **untyped arguments) -> void
|
|
62
|
+
def initialize: (ClassVariableOperatorWriteNode | ConstantOperatorWriteNode | GlobalVariableOperatorWriteNode | InstanceVariableOperatorWriteNode | LocalVariableOperatorWriteNode node, Source default_source, Symbol read_class, Symbol write_class, **untyped arguments) -> void
|
|
63
|
+
|
|
64
|
+
# Desugar `x += y` to `x = x + y`
|
|
65
|
+
#
|
|
66
|
+
# : () -> node
|
|
67
|
+
def compile: () -> node
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
class DesugarOrWriteNode
|
|
71
|
+
include DSL
|
|
72
|
+
|
|
73
|
+
attr_reader node: InstanceVariableOrWriteNode | LocalVariableOrWriteNode
|
|
74
|
+
|
|
75
|
+
attr_reader default_source: Source
|
|
76
|
+
|
|
77
|
+
attr_reader read_class: Symbol
|
|
78
|
+
|
|
79
|
+
attr_reader write_class: Symbol
|
|
80
|
+
|
|
81
|
+
attr_reader arguments: Hash[Symbol, untyped]
|
|
82
|
+
|
|
83
|
+
# : ((InstanceVariableOrWriteNode | LocalVariableOrWriteNode) node, Source default_source, Symbol read_class, Symbol write_class, **untyped arguments) -> void
|
|
84
|
+
def initialize: (InstanceVariableOrWriteNode | LocalVariableOrWriteNode node, Source default_source, Symbol read_class, Symbol write_class, **untyped arguments) -> void
|
|
85
|
+
|
|
86
|
+
# Desugar `x ||= y` to `x || x = y`
|
|
87
|
+
#
|
|
88
|
+
# : () -> node
|
|
89
|
+
def compile: () -> node
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
class ClassVariableAndWriteNode
|
|
93
|
+
# : () -> node
|
|
94
|
+
def desugar: () -> node
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
class ClassVariableOrWriteNode
|
|
98
|
+
# : () -> node
|
|
99
|
+
def desugar: () -> node
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
class ClassVariableOperatorWriteNode
|
|
103
|
+
# : () -> node
|
|
104
|
+
def desugar: () -> node
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
class ConstantAndWriteNode
|
|
108
|
+
# : () -> node
|
|
109
|
+
def desugar: () -> node
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
class ConstantOrWriteNode
|
|
113
|
+
# : () -> node
|
|
114
|
+
def desugar: () -> node
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
class ConstantOperatorWriteNode
|
|
118
|
+
# : () -> node
|
|
119
|
+
def desugar: () -> node
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
class GlobalVariableAndWriteNode
|
|
123
|
+
# : () -> node
|
|
124
|
+
def desugar: () -> node
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
class GlobalVariableOrWriteNode
|
|
128
|
+
# : () -> node
|
|
129
|
+
def desugar: () -> node
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
class GlobalVariableOperatorWriteNode
|
|
133
|
+
# : () -> node
|
|
134
|
+
def desugar: () -> node
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
class InstanceVariableAndWriteNode
|
|
138
|
+
# : () -> node
|
|
139
|
+
def desugar: () -> node
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
class InstanceVariableOrWriteNode
|
|
143
|
+
# : () -> node
|
|
144
|
+
def desugar: () -> node
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
class InstanceVariableOperatorWriteNode
|
|
148
|
+
# : () -> node
|
|
149
|
+
def desugar: () -> node
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
class LocalVariableAndWriteNode
|
|
153
|
+
# : () -> node
|
|
154
|
+
def desugar: () -> node
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
class LocalVariableOrWriteNode
|
|
158
|
+
# : () -> node
|
|
159
|
+
def desugar: () -> node
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
class LocalVariableOperatorWriteNode
|
|
163
|
+
# : () -> node
|
|
164
|
+
def desugar: () -> node
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# DesugarCompiler is a compiler that desugars Ruby code into a more primitive
|
|
168
|
+
# form. This is useful for consumers that want to deal with fewer node types.
|
|
169
|
+
class DesugarCompiler < MutationCompiler
|
|
170
|
+
# `@@foo &&= bar`
|
|
171
|
+
#
|
|
172
|
+
# becomes
|
|
173
|
+
#
|
|
174
|
+
# `@@foo && @@foo = bar`
|
|
175
|
+
#
|
|
176
|
+
# : (ClassVariableAndWriteNode node) -> node
|
|
177
|
+
def visit_class_variable_and_write_node: (ClassVariableAndWriteNode node) -> node
|
|
178
|
+
|
|
179
|
+
# `@@foo ||= bar`
|
|
180
|
+
#
|
|
181
|
+
# becomes
|
|
182
|
+
#
|
|
183
|
+
# `defined?(@@foo) ? @@foo : @@foo = bar`
|
|
184
|
+
#
|
|
185
|
+
# : (ClassVariableOrWriteNode node) -> node
|
|
186
|
+
def visit_class_variable_or_write_node: (ClassVariableOrWriteNode node) -> node
|
|
187
|
+
|
|
188
|
+
# `@@foo += bar`
|
|
189
|
+
#
|
|
190
|
+
# becomes
|
|
191
|
+
#
|
|
192
|
+
# `@@foo = @@foo + bar`
|
|
193
|
+
#
|
|
194
|
+
# : (ClassVariableOperatorWriteNode node) -> node
|
|
195
|
+
def visit_class_variable_operator_write_node: (ClassVariableOperatorWriteNode node) -> node
|
|
196
|
+
|
|
197
|
+
# `Foo &&= bar`
|
|
198
|
+
#
|
|
199
|
+
# becomes
|
|
200
|
+
#
|
|
201
|
+
# `Foo && Foo = bar`
|
|
202
|
+
#
|
|
203
|
+
# : (ConstantAndWriteNode node) -> node
|
|
204
|
+
def visit_constant_and_write_node: (ConstantAndWriteNode node) -> node
|
|
205
|
+
|
|
206
|
+
# `Foo ||= bar`
|
|
207
|
+
#
|
|
208
|
+
# becomes
|
|
209
|
+
#
|
|
210
|
+
# `defined?(Foo) ? Foo : Foo = bar`
|
|
211
|
+
#
|
|
212
|
+
# : (ConstantOrWriteNode node) -> node
|
|
213
|
+
def visit_constant_or_write_node: (ConstantOrWriteNode node) -> node
|
|
214
|
+
|
|
215
|
+
# `Foo += bar`
|
|
216
|
+
#
|
|
217
|
+
# becomes
|
|
218
|
+
#
|
|
219
|
+
# `Foo = Foo + bar`
|
|
220
|
+
#
|
|
221
|
+
# : (ConstantOperatorWriteNode node) -> node
|
|
222
|
+
def visit_constant_operator_write_node: (ConstantOperatorWriteNode node) -> node
|
|
223
|
+
|
|
224
|
+
# `$foo &&= bar`
|
|
225
|
+
#
|
|
226
|
+
# becomes
|
|
227
|
+
#
|
|
228
|
+
# `$foo && $foo = bar`
|
|
229
|
+
#
|
|
230
|
+
# : (GlobalVariableAndWriteNode node) -> node
|
|
231
|
+
def visit_global_variable_and_write_node: (GlobalVariableAndWriteNode node) -> node
|
|
232
|
+
|
|
233
|
+
# `$foo ||= bar`
|
|
234
|
+
#
|
|
235
|
+
# becomes
|
|
236
|
+
#
|
|
237
|
+
# `defined?($foo) ? $foo : $foo = bar`
|
|
238
|
+
#
|
|
239
|
+
# : (GlobalVariableOrWriteNode node) -> node
|
|
240
|
+
def visit_global_variable_or_write_node: (GlobalVariableOrWriteNode node) -> node
|
|
241
|
+
|
|
242
|
+
# `$foo += bar`
|
|
243
|
+
#
|
|
244
|
+
# becomes
|
|
245
|
+
#
|
|
246
|
+
# `$foo = $foo + bar`
|
|
247
|
+
#
|
|
248
|
+
# : (GlobalVariableOperatorWriteNode node) -> node
|
|
249
|
+
def visit_global_variable_operator_write_node: (GlobalVariableOperatorWriteNode node) -> node
|
|
250
|
+
|
|
251
|
+
# `@foo &&= bar`
|
|
252
|
+
#
|
|
253
|
+
# becomes
|
|
254
|
+
#
|
|
255
|
+
# `@foo && @foo = bar`
|
|
256
|
+
#
|
|
257
|
+
# : (InstanceVariableAndWriteNode node) -> node
|
|
258
|
+
def visit_instance_variable_and_write_node: (InstanceVariableAndWriteNode node) -> node
|
|
259
|
+
|
|
260
|
+
# `@foo ||= bar`
|
|
261
|
+
#
|
|
262
|
+
# becomes
|
|
263
|
+
#
|
|
264
|
+
# `@foo || @foo = bar`
|
|
265
|
+
#
|
|
266
|
+
# : (InstanceVariableOrWriteNode node) -> node
|
|
267
|
+
def visit_instance_variable_or_write_node: (InstanceVariableOrWriteNode node) -> node
|
|
268
|
+
|
|
269
|
+
# `@foo += bar`
|
|
270
|
+
#
|
|
271
|
+
# becomes
|
|
272
|
+
#
|
|
273
|
+
# `@foo = @foo + bar`
|
|
274
|
+
#
|
|
275
|
+
# : (InstanceVariableOperatorWriteNode node) -> node
|
|
276
|
+
def visit_instance_variable_operator_write_node: (InstanceVariableOperatorWriteNode node) -> node
|
|
277
|
+
|
|
278
|
+
# `foo &&= bar`
|
|
279
|
+
#
|
|
280
|
+
# becomes
|
|
281
|
+
#
|
|
282
|
+
# `foo && foo = bar`
|
|
283
|
+
#
|
|
284
|
+
# : (LocalVariableAndWriteNode node) -> node
|
|
285
|
+
def visit_local_variable_and_write_node: (LocalVariableAndWriteNode node) -> node
|
|
286
|
+
|
|
287
|
+
# `foo ||= bar`
|
|
288
|
+
#
|
|
289
|
+
# becomes
|
|
290
|
+
#
|
|
291
|
+
# `foo || foo = bar`
|
|
292
|
+
#
|
|
293
|
+
# : (LocalVariableOrWriteNode node) -> node
|
|
294
|
+
def visit_local_variable_or_write_node: (LocalVariableOrWriteNode node) -> node
|
|
295
|
+
|
|
296
|
+
# `foo += bar`
|
|
297
|
+
#
|
|
298
|
+
# becomes
|
|
299
|
+
#
|
|
300
|
+
# `foo = foo + bar`
|
|
301
|
+
#
|
|
302
|
+
# : (LocalVariableOperatorWriteNode node) -> node
|
|
303
|
+
def visit_local_variable_operator_write_node: (LocalVariableOperatorWriteNode node) -> node
|
|
304
|
+
end
|
|
305
|
+
end
|