yarp 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -2
- data/Makefile +2 -0
- data/README.md +5 -2
- data/config.yml +54 -267
- data/ext/yarp/api_node.c +135 -579
- data/ext/yarp/extension.c +2 -2
- data/ext/yarp/extension.h +1 -1
- data/include/yarp/ast.h +142 -285
- data/include/yarp/defines.h +5 -0
- data/include/yarp/unescape.h +1 -1
- data/include/yarp/util/yp_buffer.h +9 -1
- data/include/yarp/util/yp_constant_pool.h +3 -0
- data/include/yarp/util/yp_list.h +7 -7
- data/include/yarp/util/yp_newline_list.h +4 -0
- data/include/yarp/util/yp_state_stack.h +1 -1
- data/include/yarp/version.h +2 -2
- data/lib/yarp/ffi.rb +62 -47
- data/lib/yarp/node.rb +504 -1399
- data/lib/yarp/serialize.rb +111 -141
- data/lib/yarp.rb +6 -6
- data/src/node.c +70 -250
- data/src/prettyprint.c +41 -185
- data/src/serialize.c +35 -133
- data/src/unescape.c +29 -35
- data/src/util/yp_buffer.c +18 -0
- data/src/util/yp_list.c +7 -16
- data/src/util/yp_state_stack.c +0 -6
- data/src/yarp.c +265 -670
- data/yarp.gemspec +1 -1
- metadata +2 -2
data/lib/yarp/node.rb
CHANGED
@@ -144,6 +144,52 @@ module YARP
|
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
|
+
# Represents the use of the `&&=` operator.
|
148
|
+
#
|
149
|
+
# target &&= value
|
150
|
+
# ^^^^^^^^^^^^^^^^
|
151
|
+
class AndWriteNode < Node
|
152
|
+
# attr_reader target: Node
|
153
|
+
attr_reader :target
|
154
|
+
|
155
|
+
# attr_reader value: Node
|
156
|
+
attr_reader :value
|
157
|
+
|
158
|
+
# attr_reader operator_loc: Location
|
159
|
+
attr_reader :operator_loc
|
160
|
+
|
161
|
+
# def initialize: (target: Node, value: Node, operator_loc: Location, location: Location) -> void
|
162
|
+
def initialize(target, value, operator_loc, location)
|
163
|
+
@target = target
|
164
|
+
@value = value
|
165
|
+
@operator_loc = operator_loc
|
166
|
+
@location = location
|
167
|
+
end
|
168
|
+
|
169
|
+
# def accept: (visitor: Visitor) -> void
|
170
|
+
def accept(visitor)
|
171
|
+
visitor.visit_and_write_node(self)
|
172
|
+
end
|
173
|
+
|
174
|
+
# def child_nodes: () -> Array[nil | Node]
|
175
|
+
def child_nodes
|
176
|
+
[target, value]
|
177
|
+
end
|
178
|
+
|
179
|
+
# def deconstruct: () -> Array[nil | Node]
|
180
|
+
alias deconstruct child_nodes
|
181
|
+
|
182
|
+
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
183
|
+
def deconstruct_keys(keys)
|
184
|
+
{ target: target, value: value, operator_loc: operator_loc, location: location }
|
185
|
+
end
|
186
|
+
|
187
|
+
# def operator: () -> String
|
188
|
+
def operator
|
189
|
+
operator_loc.slice
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
147
193
|
# Represents a set of arguments to a method or a keyword.
|
148
194
|
#
|
149
195
|
# return foo, bar, baz
|
@@ -543,8 +589,8 @@ module YARP
|
|
543
589
|
# attr_reader parameters: Node?
|
544
590
|
attr_reader :parameters
|
545
591
|
|
546
|
-
# attr_reader
|
547
|
-
attr_reader :
|
592
|
+
# attr_reader body: Node?
|
593
|
+
attr_reader :body
|
548
594
|
|
549
595
|
# attr_reader opening_loc: Location
|
550
596
|
attr_reader :opening_loc
|
@@ -552,11 +598,11 @@ module YARP
|
|
552
598
|
# attr_reader closing_loc: Location
|
553
599
|
attr_reader :closing_loc
|
554
600
|
|
555
|
-
# def initialize: (locals: Array[Symbol], parameters: Node?,
|
556
|
-
def initialize(locals, parameters,
|
601
|
+
# def initialize: (locals: Array[Symbol], parameters: Node?, body: Node?, opening_loc: Location, closing_loc: Location, location: Location) -> void
|
602
|
+
def initialize(locals, parameters, body, opening_loc, closing_loc, location)
|
557
603
|
@locals = locals
|
558
604
|
@parameters = parameters
|
559
|
-
@
|
605
|
+
@body = body
|
560
606
|
@opening_loc = opening_loc
|
561
607
|
@closing_loc = closing_loc
|
562
608
|
@location = location
|
@@ -569,7 +615,7 @@ module YARP
|
|
569
615
|
|
570
616
|
# def child_nodes: () -> Array[nil | Node]
|
571
617
|
def child_nodes
|
572
|
-
[parameters,
|
618
|
+
[parameters, body]
|
573
619
|
end
|
574
620
|
|
575
621
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -577,7 +623,7 @@ module YARP
|
|
577
623
|
|
578
624
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
579
625
|
def deconstruct_keys(keys)
|
580
|
-
{ locals: locals, parameters: parameters,
|
626
|
+
{ locals: locals, parameters: parameters, body: body, opening_loc: opening_loc, closing_loc: closing_loc, location: location }
|
581
627
|
end
|
582
628
|
|
583
629
|
# def opening: () -> String
|
@@ -1119,20 +1165,20 @@ module YARP
|
|
1119
1165
|
# attr_reader superclass: Node?
|
1120
1166
|
attr_reader :superclass
|
1121
1167
|
|
1122
|
-
# attr_reader
|
1123
|
-
attr_reader :
|
1168
|
+
# attr_reader body: Node?
|
1169
|
+
attr_reader :body
|
1124
1170
|
|
1125
1171
|
# attr_reader end_keyword_loc: Location
|
1126
1172
|
attr_reader :end_keyword_loc
|
1127
1173
|
|
1128
|
-
# def initialize: (locals: Array[Symbol], class_keyword_loc: Location, constant_path: Node, inheritance_operator_loc: Location?, superclass: Node?,
|
1129
|
-
def initialize(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass,
|
1174
|
+
# def initialize: (locals: Array[Symbol], class_keyword_loc: Location, constant_path: Node, inheritance_operator_loc: Location?, superclass: Node?, body: Node?, end_keyword_loc: Location, location: Location) -> void
|
1175
|
+
def initialize(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, location)
|
1130
1176
|
@locals = locals
|
1131
1177
|
@class_keyword_loc = class_keyword_loc
|
1132
1178
|
@constant_path = constant_path
|
1133
1179
|
@inheritance_operator_loc = inheritance_operator_loc
|
1134
1180
|
@superclass = superclass
|
1135
|
-
@
|
1181
|
+
@body = body
|
1136
1182
|
@end_keyword_loc = end_keyword_loc
|
1137
1183
|
@location = location
|
1138
1184
|
end
|
@@ -1144,7 +1190,7 @@ module YARP
|
|
1144
1190
|
|
1145
1191
|
# def child_nodes: () -> Array[nil | Node]
|
1146
1192
|
def child_nodes
|
1147
|
-
[constant_path, superclass,
|
1193
|
+
[constant_path, superclass, body]
|
1148
1194
|
end
|
1149
1195
|
|
1150
1196
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -1152,7 +1198,7 @@ module YARP
|
|
1152
1198
|
|
1153
1199
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1154
1200
|
def deconstruct_keys(keys)
|
1155
|
-
{ locals: locals, class_keyword_loc: class_keyword_loc, constant_path: constant_path, inheritance_operator_loc: inheritance_operator_loc, superclass: superclass,
|
1201
|
+
{ locals: locals, class_keyword_loc: class_keyword_loc, constant_path: constant_path, inheritance_operator_loc: inheritance_operator_loc, superclass: superclass, body: body, end_keyword_loc: end_keyword_loc, location: location }
|
1156
1202
|
end
|
1157
1203
|
|
1158
1204
|
# def class_keyword: () -> String
|
@@ -1171,31 +1217,60 @@ module YARP
|
|
1171
1217
|
end
|
1172
1218
|
end
|
1173
1219
|
|
1174
|
-
# Represents
|
1220
|
+
# Represents referencing a class variable.
|
1175
1221
|
#
|
1176
|
-
# @@
|
1177
|
-
#
|
1178
|
-
class
|
1222
|
+
# @@foo
|
1223
|
+
# ^^^^^
|
1224
|
+
class ClassVariableReadNode < Node
|
1225
|
+
# def initialize: (location: Location) -> void
|
1226
|
+
def initialize(location)
|
1227
|
+
@location = location
|
1228
|
+
end
|
1229
|
+
|
1230
|
+
# def accept: (visitor: Visitor) -> void
|
1231
|
+
def accept(visitor)
|
1232
|
+
visitor.visit_class_variable_read_node(self)
|
1233
|
+
end
|
1234
|
+
|
1235
|
+
# def child_nodes: () -> Array[nil | Node]
|
1236
|
+
def child_nodes
|
1237
|
+
[]
|
1238
|
+
end
|
1239
|
+
|
1240
|
+
# def deconstruct: () -> Array[nil | Node]
|
1241
|
+
alias deconstruct child_nodes
|
1242
|
+
|
1243
|
+
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1244
|
+
def deconstruct_keys(keys)
|
1245
|
+
{ location: location }
|
1246
|
+
end
|
1247
|
+
end
|
1248
|
+
|
1249
|
+
# Represents writing to a class variable.
|
1250
|
+
#
|
1251
|
+
# @@foo = 1
|
1252
|
+
# ^^^^^^^^^
|
1253
|
+
class ClassVariableWriteNode < Node
|
1179
1254
|
# attr_reader name_loc: Location
|
1180
1255
|
attr_reader :name_loc
|
1181
1256
|
|
1182
|
-
# attr_reader
|
1183
|
-
attr_reader :operator_loc
|
1184
|
-
|
1185
|
-
# attr_reader value: Node
|
1257
|
+
# attr_reader value: Node?
|
1186
1258
|
attr_reader :value
|
1187
1259
|
|
1188
|
-
#
|
1189
|
-
|
1260
|
+
# attr_reader operator_loc: Location?
|
1261
|
+
attr_reader :operator_loc
|
1262
|
+
|
1263
|
+
# def initialize: (name_loc: Location, value: Node?, operator_loc: Location?, location: Location) -> void
|
1264
|
+
def initialize(name_loc, value, operator_loc, location)
|
1190
1265
|
@name_loc = name_loc
|
1191
|
-
@operator_loc = operator_loc
|
1192
1266
|
@value = value
|
1267
|
+
@operator_loc = operator_loc
|
1193
1268
|
@location = location
|
1194
1269
|
end
|
1195
1270
|
|
1196
1271
|
# def accept: (visitor: Visitor) -> void
|
1197
1272
|
def accept(visitor)
|
1198
|
-
visitor.
|
1273
|
+
visitor.visit_class_variable_write_node(self)
|
1199
1274
|
end
|
1200
1275
|
|
1201
1276
|
# def child_nodes: () -> Array[nil | Node]
|
@@ -1208,7 +1283,7 @@ module YARP
|
|
1208
1283
|
|
1209
1284
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1210
1285
|
def deconstruct_keys(keys)
|
1211
|
-
{ name_loc: name_loc,
|
1286
|
+
{ name_loc: name_loc, value: value, operator_loc: operator_loc, location: location }
|
1212
1287
|
end
|
1213
1288
|
|
1214
1289
|
# def name: () -> String
|
@@ -1216,42 +1291,42 @@ module YARP
|
|
1216
1291
|
name_loc.slice
|
1217
1292
|
end
|
1218
1293
|
|
1219
|
-
# def operator: () -> String
|
1294
|
+
# def operator: () -> String?
|
1220
1295
|
def operator
|
1221
|
-
operator_loc
|
1296
|
+
operator_loc&.slice
|
1222
1297
|
end
|
1223
1298
|
end
|
1224
1299
|
|
1225
|
-
# Represents
|
1300
|
+
# Represents accessing a constant through a path of `::` operators.
|
1226
1301
|
#
|
1227
|
-
#
|
1228
|
-
#
|
1229
|
-
class
|
1230
|
-
# attr_reader
|
1231
|
-
attr_reader :
|
1302
|
+
# Foo::Bar
|
1303
|
+
# ^^^^^^^^
|
1304
|
+
class ConstantPathNode < Node
|
1305
|
+
# attr_reader parent: Node?
|
1306
|
+
attr_reader :parent
|
1232
1307
|
|
1233
|
-
# attr_reader
|
1234
|
-
attr_reader :
|
1308
|
+
# attr_reader child: Node
|
1309
|
+
attr_reader :child
|
1235
1310
|
|
1236
|
-
# attr_reader
|
1237
|
-
attr_reader :
|
1311
|
+
# attr_reader delimiter_loc: Location
|
1312
|
+
attr_reader :delimiter_loc
|
1238
1313
|
|
1239
|
-
# def initialize: (
|
1240
|
-
def initialize(
|
1241
|
-
@
|
1242
|
-
@
|
1243
|
-
@
|
1314
|
+
# def initialize: (parent: Node?, child: Node, delimiter_loc: Location, location: Location) -> void
|
1315
|
+
def initialize(parent, child, delimiter_loc, location)
|
1316
|
+
@parent = parent
|
1317
|
+
@child = child
|
1318
|
+
@delimiter_loc = delimiter_loc
|
1244
1319
|
@location = location
|
1245
1320
|
end
|
1246
1321
|
|
1247
1322
|
# def accept: (visitor: Visitor) -> void
|
1248
1323
|
def accept(visitor)
|
1249
|
-
visitor.
|
1324
|
+
visitor.visit_constant_path_node(self)
|
1250
1325
|
end
|
1251
1326
|
|
1252
1327
|
# def child_nodes: () -> Array[nil | Node]
|
1253
1328
|
def child_nodes
|
1254
|
-
[
|
1329
|
+
[parent, child]
|
1255
1330
|
end
|
1256
1331
|
|
1257
1332
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -1259,54 +1334,51 @@ module YARP
|
|
1259
1334
|
|
1260
1335
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1261
1336
|
def deconstruct_keys(keys)
|
1262
|
-
{
|
1263
|
-
end
|
1264
|
-
|
1265
|
-
# def name: () -> String
|
1266
|
-
def name
|
1267
|
-
name_loc.slice
|
1337
|
+
{ parent: parent, child: child, delimiter_loc: delimiter_loc, location: location }
|
1268
1338
|
end
|
1269
1339
|
|
1270
|
-
# def
|
1271
|
-
def
|
1272
|
-
|
1340
|
+
# def delimiter: () -> String
|
1341
|
+
def delimiter
|
1342
|
+
delimiter_loc.slice
|
1273
1343
|
end
|
1274
1344
|
end
|
1275
1345
|
|
1276
|
-
# Represents
|
1346
|
+
# Represents writing to a constant path.
|
1277
1347
|
#
|
1278
|
-
#
|
1279
|
-
#
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1348
|
+
# ::Foo = 1
|
1349
|
+
# ^^^^^^^^^
|
1350
|
+
#
|
1351
|
+
# Foo::Bar = 1
|
1352
|
+
# ^^^^^^^^^^^^
|
1353
|
+
#
|
1354
|
+
# ::Foo::Bar = 1
|
1355
|
+
# ^^^^^^^^^^^^^^
|
1356
|
+
class ConstantPathWriteNode < Node
|
1357
|
+
# attr_reader target: Node
|
1358
|
+
attr_reader :target
|
1283
1359
|
|
1284
|
-
# attr_reader operator_loc: Location
|
1360
|
+
# attr_reader operator_loc: Location?
|
1285
1361
|
attr_reader :operator_loc
|
1286
1362
|
|
1287
|
-
# attr_reader value: Node
|
1363
|
+
# attr_reader value: Node?
|
1288
1364
|
attr_reader :value
|
1289
1365
|
|
1290
|
-
#
|
1291
|
-
|
1292
|
-
|
1293
|
-
# def initialize: (name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location) -> void
|
1294
|
-
def initialize(name_loc, operator_loc, value, operator, location)
|
1295
|
-
@name_loc = name_loc
|
1366
|
+
# def initialize: (target: Node, operator_loc: Location?, value: Node?, location: Location) -> void
|
1367
|
+
def initialize(target, operator_loc, value, location)
|
1368
|
+
@target = target
|
1296
1369
|
@operator_loc = operator_loc
|
1297
1370
|
@value = value
|
1298
|
-
@operator = operator
|
1299
1371
|
@location = location
|
1300
1372
|
end
|
1301
1373
|
|
1302
1374
|
# def accept: (visitor: Visitor) -> void
|
1303
1375
|
def accept(visitor)
|
1304
|
-
visitor.
|
1376
|
+
visitor.visit_constant_path_write_node(self)
|
1305
1377
|
end
|
1306
1378
|
|
1307
1379
|
# def child_nodes: () -> Array[nil | Node]
|
1308
1380
|
def child_nodes
|
1309
|
-
[value]
|
1381
|
+
[target, value]
|
1310
1382
|
end
|
1311
1383
|
|
1312
1384
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -1314,20 +1386,20 @@ module YARP
|
|
1314
1386
|
|
1315
1387
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1316
1388
|
def deconstruct_keys(keys)
|
1317
|
-
{
|
1389
|
+
{ target: target, operator_loc: operator_loc, value: value, location: location }
|
1318
1390
|
end
|
1319
1391
|
|
1320
|
-
# def
|
1321
|
-
def
|
1322
|
-
|
1392
|
+
# def operator: () -> String?
|
1393
|
+
def operator
|
1394
|
+
operator_loc&.slice
|
1323
1395
|
end
|
1324
1396
|
end
|
1325
1397
|
|
1326
|
-
# Represents referencing a
|
1398
|
+
# Represents referencing a constant.
|
1327
1399
|
#
|
1328
|
-
#
|
1329
|
-
#
|
1330
|
-
class
|
1400
|
+
# Foo
|
1401
|
+
# ^^^
|
1402
|
+
class ConstantReadNode < Node
|
1331
1403
|
# def initialize: (location: Location) -> void
|
1332
1404
|
def initialize(location)
|
1333
1405
|
@location = location
|
@@ -1335,7 +1407,7 @@ module YARP
|
|
1335
1407
|
|
1336
1408
|
# def accept: (visitor: Visitor) -> void
|
1337
1409
|
def accept(visitor)
|
1338
|
-
visitor.
|
1410
|
+
visitor.visit_constant_read_node(self)
|
1339
1411
|
end
|
1340
1412
|
|
1341
1413
|
# def child_nodes: () -> Array[nil | Node]
|
@@ -1352,11 +1424,11 @@ module YARP
|
|
1352
1424
|
end
|
1353
1425
|
end
|
1354
1426
|
|
1355
|
-
# Represents writing to a
|
1427
|
+
# Represents writing to a constant.
|
1356
1428
|
#
|
1357
|
-
#
|
1358
|
-
#
|
1359
|
-
class
|
1429
|
+
# Foo = 1
|
1430
|
+
# ^^^^^^^
|
1431
|
+
class ConstantWriteNode < Node
|
1360
1432
|
# attr_reader name_loc: Location
|
1361
1433
|
attr_reader :name_loc
|
1362
1434
|
|
@@ -1376,7 +1448,7 @@ module YARP
|
|
1376
1448
|
|
1377
1449
|
# def accept: (visitor: Visitor) -> void
|
1378
1450
|
def accept(visitor)
|
1379
|
-
visitor.
|
1451
|
+
visitor.visit_constant_write_node(self)
|
1380
1452
|
end
|
1381
1453
|
|
1382
1454
|
# def child_nodes: () -> Array[nil | Node]
|
@@ -1403,36 +1475,69 @@ module YARP
|
|
1403
1475
|
end
|
1404
1476
|
end
|
1405
1477
|
|
1406
|
-
# Represents
|
1478
|
+
# Represents a method definition.
|
1407
1479
|
#
|
1408
|
-
#
|
1409
|
-
#
|
1410
|
-
|
1480
|
+
# def method
|
1481
|
+
# end
|
1482
|
+
# ^^^^^^^^^^
|
1483
|
+
class DefNode < Node
|
1411
1484
|
# attr_reader name_loc: Location
|
1412
1485
|
attr_reader :name_loc
|
1413
1486
|
|
1414
|
-
# attr_reader
|
1487
|
+
# attr_reader receiver: Node?
|
1488
|
+
attr_reader :receiver
|
1489
|
+
|
1490
|
+
# attr_reader parameters: Node?
|
1491
|
+
attr_reader :parameters
|
1492
|
+
|
1493
|
+
# attr_reader body: Node?
|
1494
|
+
attr_reader :body
|
1495
|
+
|
1496
|
+
# attr_reader locals: Array[Symbol]
|
1497
|
+
attr_reader :locals
|
1498
|
+
|
1499
|
+
# attr_reader def_keyword_loc: Location
|
1500
|
+
attr_reader :def_keyword_loc
|
1501
|
+
|
1502
|
+
# attr_reader operator_loc: Location?
|
1415
1503
|
attr_reader :operator_loc
|
1416
1504
|
|
1417
|
-
# attr_reader
|
1418
|
-
attr_reader :
|
1505
|
+
# attr_reader lparen_loc: Location?
|
1506
|
+
attr_reader :lparen_loc
|
1419
1507
|
|
1420
|
-
#
|
1421
|
-
|
1508
|
+
# attr_reader rparen_loc: Location?
|
1509
|
+
attr_reader :rparen_loc
|
1510
|
+
|
1511
|
+
# attr_reader equal_loc: Location?
|
1512
|
+
attr_reader :equal_loc
|
1513
|
+
|
1514
|
+
# attr_reader end_keyword_loc: Location?
|
1515
|
+
attr_reader :end_keyword_loc
|
1516
|
+
|
1517
|
+
# def initialize: (name_loc: Location, receiver: Node?, parameters: Node?, body: Node?, locals: Array[Symbol], def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location) -> void
|
1518
|
+
def initialize(name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location)
|
1422
1519
|
@name_loc = name_loc
|
1520
|
+
@receiver = receiver
|
1521
|
+
@parameters = parameters
|
1522
|
+
@body = body
|
1523
|
+
@locals = locals
|
1524
|
+
@def_keyword_loc = def_keyword_loc
|
1423
1525
|
@operator_loc = operator_loc
|
1424
|
-
@
|
1526
|
+
@lparen_loc = lparen_loc
|
1527
|
+
@rparen_loc = rparen_loc
|
1528
|
+
@equal_loc = equal_loc
|
1529
|
+
@end_keyword_loc = end_keyword_loc
|
1425
1530
|
@location = location
|
1426
1531
|
end
|
1427
1532
|
|
1428
1533
|
# def accept: (visitor: Visitor) -> void
|
1429
1534
|
def accept(visitor)
|
1430
|
-
visitor.
|
1535
|
+
visitor.visit_def_node(self)
|
1431
1536
|
end
|
1432
1537
|
|
1433
1538
|
# def child_nodes: () -> Array[nil | Node]
|
1434
1539
|
def child_nodes
|
1435
|
-
[
|
1540
|
+
[receiver, parameters, body]
|
1436
1541
|
end
|
1437
1542
|
|
1438
1543
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -1440,507 +1545,7 @@ module YARP
|
|
1440
1545
|
|
1441
1546
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1442
1547
|
def deconstruct_keys(keys)
|
1443
|
-
{ name_loc: name_loc, operator_loc: operator_loc,
|
1444
|
-
end
|
1445
|
-
|
1446
|
-
# def name: () -> String
|
1447
|
-
def name
|
1448
|
-
name_loc.slice
|
1449
|
-
end
|
1450
|
-
|
1451
|
-
# def operator: () -> String
|
1452
|
-
def operator
|
1453
|
-
operator_loc.slice
|
1454
|
-
end
|
1455
|
-
end
|
1456
|
-
|
1457
|
-
# Represents the use of the `||=` operator for assignment to a constant.
|
1458
|
-
#
|
1459
|
-
# Target ||= value
|
1460
|
-
# ^^^^^^^^^^^^^^^^
|
1461
|
-
class ConstantOperatorOrWriteNode < Node
|
1462
|
-
# attr_reader name_loc: Location
|
1463
|
-
attr_reader :name_loc
|
1464
|
-
|
1465
|
-
# attr_reader operator_loc: Location
|
1466
|
-
attr_reader :operator_loc
|
1467
|
-
|
1468
|
-
# attr_reader value: Node
|
1469
|
-
attr_reader :value
|
1470
|
-
|
1471
|
-
# def initialize: (name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void
|
1472
|
-
def initialize(name_loc, operator_loc, value, location)
|
1473
|
-
@name_loc = name_loc
|
1474
|
-
@operator_loc = operator_loc
|
1475
|
-
@value = value
|
1476
|
-
@location = location
|
1477
|
-
end
|
1478
|
-
|
1479
|
-
# def accept: (visitor: Visitor) -> void
|
1480
|
-
def accept(visitor)
|
1481
|
-
visitor.visit_constant_operator_or_write_node(self)
|
1482
|
-
end
|
1483
|
-
|
1484
|
-
# def child_nodes: () -> Array[nil | Node]
|
1485
|
-
def child_nodes
|
1486
|
-
[value]
|
1487
|
-
end
|
1488
|
-
|
1489
|
-
# def deconstruct: () -> Array[nil | Node]
|
1490
|
-
alias deconstruct child_nodes
|
1491
|
-
|
1492
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1493
|
-
def deconstruct_keys(keys)
|
1494
|
-
{ name_loc: name_loc, operator_loc: operator_loc, value: value, location: location }
|
1495
|
-
end
|
1496
|
-
|
1497
|
-
# def name: () -> String
|
1498
|
-
def name
|
1499
|
-
name_loc.slice
|
1500
|
-
end
|
1501
|
-
|
1502
|
-
# def operator: () -> String
|
1503
|
-
def operator
|
1504
|
-
operator_loc.slice
|
1505
|
-
end
|
1506
|
-
end
|
1507
|
-
|
1508
|
-
# Represents assigning to a constant using an operator that isn't `=`.
|
1509
|
-
#
|
1510
|
-
# Target += value
|
1511
|
-
# ^^^^^^^^^^^^^^^
|
1512
|
-
class ConstantOperatorWriteNode < Node
|
1513
|
-
# attr_reader name_loc: Location
|
1514
|
-
attr_reader :name_loc
|
1515
|
-
|
1516
|
-
# attr_reader operator_loc: Location
|
1517
|
-
attr_reader :operator_loc
|
1518
|
-
|
1519
|
-
# attr_reader value: Node
|
1520
|
-
attr_reader :value
|
1521
|
-
|
1522
|
-
# attr_reader operator: Symbol
|
1523
|
-
attr_reader :operator
|
1524
|
-
|
1525
|
-
# def initialize: (name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location) -> void
|
1526
|
-
def initialize(name_loc, operator_loc, value, operator, location)
|
1527
|
-
@name_loc = name_loc
|
1528
|
-
@operator_loc = operator_loc
|
1529
|
-
@value = value
|
1530
|
-
@operator = operator
|
1531
|
-
@location = location
|
1532
|
-
end
|
1533
|
-
|
1534
|
-
# def accept: (visitor: Visitor) -> void
|
1535
|
-
def accept(visitor)
|
1536
|
-
visitor.visit_constant_operator_write_node(self)
|
1537
|
-
end
|
1538
|
-
|
1539
|
-
# def child_nodes: () -> Array[nil | Node]
|
1540
|
-
def child_nodes
|
1541
|
-
[value]
|
1542
|
-
end
|
1543
|
-
|
1544
|
-
# def deconstruct: () -> Array[nil | Node]
|
1545
|
-
alias deconstruct child_nodes
|
1546
|
-
|
1547
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1548
|
-
def deconstruct_keys(keys)
|
1549
|
-
{ name_loc: name_loc, operator_loc: operator_loc, value: value, operator: operator, location: location }
|
1550
|
-
end
|
1551
|
-
|
1552
|
-
# def name: () -> String
|
1553
|
-
def name
|
1554
|
-
name_loc.slice
|
1555
|
-
end
|
1556
|
-
end
|
1557
|
-
|
1558
|
-
# Represents accessing a constant through a path of `::` operators.
|
1559
|
-
#
|
1560
|
-
# Foo::Bar
|
1561
|
-
# ^^^^^^^^
|
1562
|
-
class ConstantPathNode < Node
|
1563
|
-
# attr_reader parent: Node?
|
1564
|
-
attr_reader :parent
|
1565
|
-
|
1566
|
-
# attr_reader child: Node
|
1567
|
-
attr_reader :child
|
1568
|
-
|
1569
|
-
# attr_reader delimiter_loc: Location
|
1570
|
-
attr_reader :delimiter_loc
|
1571
|
-
|
1572
|
-
# def initialize: (parent: Node?, child: Node, delimiter_loc: Location, location: Location) -> void
|
1573
|
-
def initialize(parent, child, delimiter_loc, location)
|
1574
|
-
@parent = parent
|
1575
|
-
@child = child
|
1576
|
-
@delimiter_loc = delimiter_loc
|
1577
|
-
@location = location
|
1578
|
-
end
|
1579
|
-
|
1580
|
-
# def accept: (visitor: Visitor) -> void
|
1581
|
-
def accept(visitor)
|
1582
|
-
visitor.visit_constant_path_node(self)
|
1583
|
-
end
|
1584
|
-
|
1585
|
-
# def child_nodes: () -> Array[nil | Node]
|
1586
|
-
def child_nodes
|
1587
|
-
[parent, child]
|
1588
|
-
end
|
1589
|
-
|
1590
|
-
# def deconstruct: () -> Array[nil | Node]
|
1591
|
-
alias deconstruct child_nodes
|
1592
|
-
|
1593
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1594
|
-
def deconstruct_keys(keys)
|
1595
|
-
{ parent: parent, child: child, delimiter_loc: delimiter_loc, location: location }
|
1596
|
-
end
|
1597
|
-
|
1598
|
-
# def delimiter: () -> String
|
1599
|
-
def delimiter
|
1600
|
-
delimiter_loc.slice
|
1601
|
-
end
|
1602
|
-
end
|
1603
|
-
|
1604
|
-
# Represents the use of the `&&=` operator for assignment to a constant path.
|
1605
|
-
#
|
1606
|
-
# Parent::Child &&= value
|
1607
|
-
# ^^^^^^^^^^^^^^^^^^^^^^^
|
1608
|
-
class ConstantPathOperatorAndWriteNode < Node
|
1609
|
-
# attr_reader target: Node
|
1610
|
-
attr_reader :target
|
1611
|
-
|
1612
|
-
# attr_reader operator_loc: Location
|
1613
|
-
attr_reader :operator_loc
|
1614
|
-
|
1615
|
-
# attr_reader value: Node
|
1616
|
-
attr_reader :value
|
1617
|
-
|
1618
|
-
# def initialize: (target: Node, operator_loc: Location, value: Node, location: Location) -> void
|
1619
|
-
def initialize(target, operator_loc, value, location)
|
1620
|
-
@target = target
|
1621
|
-
@operator_loc = operator_loc
|
1622
|
-
@value = value
|
1623
|
-
@location = location
|
1624
|
-
end
|
1625
|
-
|
1626
|
-
# def accept: (visitor: Visitor) -> void
|
1627
|
-
def accept(visitor)
|
1628
|
-
visitor.visit_constant_path_operator_and_write_node(self)
|
1629
|
-
end
|
1630
|
-
|
1631
|
-
# def child_nodes: () -> Array[nil | Node]
|
1632
|
-
def child_nodes
|
1633
|
-
[target, value]
|
1634
|
-
end
|
1635
|
-
|
1636
|
-
# def deconstruct: () -> Array[nil | Node]
|
1637
|
-
alias deconstruct child_nodes
|
1638
|
-
|
1639
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1640
|
-
def deconstruct_keys(keys)
|
1641
|
-
{ target: target, operator_loc: operator_loc, value: value, location: location }
|
1642
|
-
end
|
1643
|
-
|
1644
|
-
# def operator: () -> String
|
1645
|
-
def operator
|
1646
|
-
operator_loc.slice
|
1647
|
-
end
|
1648
|
-
end
|
1649
|
-
|
1650
|
-
# Represents the use of the `||=` operator for assignment to a constant path.
|
1651
|
-
#
|
1652
|
-
# Parent::Child ||= value
|
1653
|
-
# ^^^^^^^^^^^^^^^^^^^^^^^
|
1654
|
-
class ConstantPathOperatorOrWriteNode < Node
|
1655
|
-
# attr_reader target: Node
|
1656
|
-
attr_reader :target
|
1657
|
-
|
1658
|
-
# attr_reader operator_loc: Location
|
1659
|
-
attr_reader :operator_loc
|
1660
|
-
|
1661
|
-
# attr_reader value: Node
|
1662
|
-
attr_reader :value
|
1663
|
-
|
1664
|
-
# def initialize: (target: Node, operator_loc: Location, value: Node, location: Location) -> void
|
1665
|
-
def initialize(target, operator_loc, value, location)
|
1666
|
-
@target = target
|
1667
|
-
@operator_loc = operator_loc
|
1668
|
-
@value = value
|
1669
|
-
@location = location
|
1670
|
-
end
|
1671
|
-
|
1672
|
-
# def accept: (visitor: Visitor) -> void
|
1673
|
-
def accept(visitor)
|
1674
|
-
visitor.visit_constant_path_operator_or_write_node(self)
|
1675
|
-
end
|
1676
|
-
|
1677
|
-
# def child_nodes: () -> Array[nil | Node]
|
1678
|
-
def child_nodes
|
1679
|
-
[target, value]
|
1680
|
-
end
|
1681
|
-
|
1682
|
-
# def deconstruct: () -> Array[nil | Node]
|
1683
|
-
alias deconstruct child_nodes
|
1684
|
-
|
1685
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1686
|
-
def deconstruct_keys(keys)
|
1687
|
-
{ target: target, operator_loc: operator_loc, value: value, location: location }
|
1688
|
-
end
|
1689
|
-
|
1690
|
-
# def operator: () -> String
|
1691
|
-
def operator
|
1692
|
-
operator_loc.slice
|
1693
|
-
end
|
1694
|
-
end
|
1695
|
-
|
1696
|
-
# Represents assigning to a constant path using an operator that isn't `=`.
|
1697
|
-
#
|
1698
|
-
# Parent::Child += value
|
1699
|
-
# ^^^^^^^^^^^^^^^^^^^^^^
|
1700
|
-
class ConstantPathOperatorWriteNode < Node
|
1701
|
-
# attr_reader target: Node
|
1702
|
-
attr_reader :target
|
1703
|
-
|
1704
|
-
# attr_reader operator_loc: Location
|
1705
|
-
attr_reader :operator_loc
|
1706
|
-
|
1707
|
-
# attr_reader value: Node
|
1708
|
-
attr_reader :value
|
1709
|
-
|
1710
|
-
# attr_reader operator: Symbol
|
1711
|
-
attr_reader :operator
|
1712
|
-
|
1713
|
-
# def initialize: (target: Node, operator_loc: Location, value: Node, operator: Symbol, location: Location) -> void
|
1714
|
-
def initialize(target, operator_loc, value, operator, location)
|
1715
|
-
@target = target
|
1716
|
-
@operator_loc = operator_loc
|
1717
|
-
@value = value
|
1718
|
-
@operator = operator
|
1719
|
-
@location = location
|
1720
|
-
end
|
1721
|
-
|
1722
|
-
# def accept: (visitor: Visitor) -> void
|
1723
|
-
def accept(visitor)
|
1724
|
-
visitor.visit_constant_path_operator_write_node(self)
|
1725
|
-
end
|
1726
|
-
|
1727
|
-
# def child_nodes: () -> Array[nil | Node]
|
1728
|
-
def child_nodes
|
1729
|
-
[target, value]
|
1730
|
-
end
|
1731
|
-
|
1732
|
-
# def deconstruct: () -> Array[nil | Node]
|
1733
|
-
alias deconstruct child_nodes
|
1734
|
-
|
1735
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1736
|
-
def deconstruct_keys(keys)
|
1737
|
-
{ target: target, operator_loc: operator_loc, value: value, operator: operator, location: location }
|
1738
|
-
end
|
1739
|
-
end
|
1740
|
-
|
1741
|
-
# Represents writing to a constant path.
|
1742
|
-
#
|
1743
|
-
# ::Foo = 1
|
1744
|
-
# ^^^^^^^^^
|
1745
|
-
#
|
1746
|
-
# Foo::Bar = 1
|
1747
|
-
# ^^^^^^^^^^^^
|
1748
|
-
#
|
1749
|
-
# ::Foo::Bar = 1
|
1750
|
-
# ^^^^^^^^^^^^^^
|
1751
|
-
class ConstantPathWriteNode < Node
|
1752
|
-
# attr_reader target: Node
|
1753
|
-
attr_reader :target
|
1754
|
-
|
1755
|
-
# attr_reader operator_loc: Location?
|
1756
|
-
attr_reader :operator_loc
|
1757
|
-
|
1758
|
-
# attr_reader value: Node?
|
1759
|
-
attr_reader :value
|
1760
|
-
|
1761
|
-
# def initialize: (target: Node, operator_loc: Location?, value: Node?, location: Location) -> void
|
1762
|
-
def initialize(target, operator_loc, value, location)
|
1763
|
-
@target = target
|
1764
|
-
@operator_loc = operator_loc
|
1765
|
-
@value = value
|
1766
|
-
@location = location
|
1767
|
-
end
|
1768
|
-
|
1769
|
-
# def accept: (visitor: Visitor) -> void
|
1770
|
-
def accept(visitor)
|
1771
|
-
visitor.visit_constant_path_write_node(self)
|
1772
|
-
end
|
1773
|
-
|
1774
|
-
# def child_nodes: () -> Array[nil | Node]
|
1775
|
-
def child_nodes
|
1776
|
-
[target, value]
|
1777
|
-
end
|
1778
|
-
|
1779
|
-
# def deconstruct: () -> Array[nil | Node]
|
1780
|
-
alias deconstruct child_nodes
|
1781
|
-
|
1782
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1783
|
-
def deconstruct_keys(keys)
|
1784
|
-
{ target: target, operator_loc: operator_loc, value: value, location: location }
|
1785
|
-
end
|
1786
|
-
|
1787
|
-
# def operator: () -> String?
|
1788
|
-
def operator
|
1789
|
-
operator_loc&.slice
|
1790
|
-
end
|
1791
|
-
end
|
1792
|
-
|
1793
|
-
# Represents referencing a constant.
|
1794
|
-
#
|
1795
|
-
# Foo
|
1796
|
-
# ^^^
|
1797
|
-
class ConstantReadNode < Node
|
1798
|
-
# def initialize: (location: Location) -> void
|
1799
|
-
def initialize(location)
|
1800
|
-
@location = location
|
1801
|
-
end
|
1802
|
-
|
1803
|
-
# def accept: (visitor: Visitor) -> void
|
1804
|
-
def accept(visitor)
|
1805
|
-
visitor.visit_constant_read_node(self)
|
1806
|
-
end
|
1807
|
-
|
1808
|
-
# def child_nodes: () -> Array[nil | Node]
|
1809
|
-
def child_nodes
|
1810
|
-
[]
|
1811
|
-
end
|
1812
|
-
|
1813
|
-
# def deconstruct: () -> Array[nil | Node]
|
1814
|
-
alias deconstruct child_nodes
|
1815
|
-
|
1816
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1817
|
-
def deconstruct_keys(keys)
|
1818
|
-
{ location: location }
|
1819
|
-
end
|
1820
|
-
end
|
1821
|
-
|
1822
|
-
# Represents writing to a constant.
|
1823
|
-
#
|
1824
|
-
# Foo = 1
|
1825
|
-
# ^^^^^^^
|
1826
|
-
class ConstantWriteNode < Node
|
1827
|
-
# attr_reader name_loc: Location
|
1828
|
-
attr_reader :name_loc
|
1829
|
-
|
1830
|
-
# attr_reader value: Node?
|
1831
|
-
attr_reader :value
|
1832
|
-
|
1833
|
-
# attr_reader operator_loc: Location?
|
1834
|
-
attr_reader :operator_loc
|
1835
|
-
|
1836
|
-
# def initialize: (name_loc: Location, value: Node?, operator_loc: Location?, location: Location) -> void
|
1837
|
-
def initialize(name_loc, value, operator_loc, location)
|
1838
|
-
@name_loc = name_loc
|
1839
|
-
@value = value
|
1840
|
-
@operator_loc = operator_loc
|
1841
|
-
@location = location
|
1842
|
-
end
|
1843
|
-
|
1844
|
-
# def accept: (visitor: Visitor) -> void
|
1845
|
-
def accept(visitor)
|
1846
|
-
visitor.visit_constant_write_node(self)
|
1847
|
-
end
|
1848
|
-
|
1849
|
-
# def child_nodes: () -> Array[nil | Node]
|
1850
|
-
def child_nodes
|
1851
|
-
[value]
|
1852
|
-
end
|
1853
|
-
|
1854
|
-
# def deconstruct: () -> Array[nil | Node]
|
1855
|
-
alias deconstruct child_nodes
|
1856
|
-
|
1857
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1858
|
-
def deconstruct_keys(keys)
|
1859
|
-
{ name_loc: name_loc, value: value, operator_loc: operator_loc, location: location }
|
1860
|
-
end
|
1861
|
-
|
1862
|
-
# def name: () -> String
|
1863
|
-
def name
|
1864
|
-
name_loc.slice
|
1865
|
-
end
|
1866
|
-
|
1867
|
-
# def operator: () -> String?
|
1868
|
-
def operator
|
1869
|
-
operator_loc&.slice
|
1870
|
-
end
|
1871
|
-
end
|
1872
|
-
|
1873
|
-
# Represents a method definition.
|
1874
|
-
#
|
1875
|
-
# def method
|
1876
|
-
# end
|
1877
|
-
# ^^^^^^^^^^
|
1878
|
-
class DefNode < Node
|
1879
|
-
# attr_reader name_loc: Location
|
1880
|
-
attr_reader :name_loc
|
1881
|
-
|
1882
|
-
# attr_reader receiver: Node?
|
1883
|
-
attr_reader :receiver
|
1884
|
-
|
1885
|
-
# attr_reader parameters: Node?
|
1886
|
-
attr_reader :parameters
|
1887
|
-
|
1888
|
-
# attr_reader statements: Node?
|
1889
|
-
attr_reader :statements
|
1890
|
-
|
1891
|
-
# attr_reader locals: Array[Symbol]
|
1892
|
-
attr_reader :locals
|
1893
|
-
|
1894
|
-
# attr_reader def_keyword_loc: Location
|
1895
|
-
attr_reader :def_keyword_loc
|
1896
|
-
|
1897
|
-
# attr_reader operator_loc: Location?
|
1898
|
-
attr_reader :operator_loc
|
1899
|
-
|
1900
|
-
# attr_reader lparen_loc: Location?
|
1901
|
-
attr_reader :lparen_loc
|
1902
|
-
|
1903
|
-
# attr_reader rparen_loc: Location?
|
1904
|
-
attr_reader :rparen_loc
|
1905
|
-
|
1906
|
-
# attr_reader equal_loc: Location?
|
1907
|
-
attr_reader :equal_loc
|
1908
|
-
|
1909
|
-
# attr_reader end_keyword_loc: Location?
|
1910
|
-
attr_reader :end_keyword_loc
|
1911
|
-
|
1912
|
-
# def initialize: (name_loc: Location, receiver: Node?, parameters: Node?, statements: Node?, locals: Array[Symbol], def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location) -> void
|
1913
|
-
def initialize(name_loc, receiver, parameters, statements, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location)
|
1914
|
-
@name_loc = name_loc
|
1915
|
-
@receiver = receiver
|
1916
|
-
@parameters = parameters
|
1917
|
-
@statements = statements
|
1918
|
-
@locals = locals
|
1919
|
-
@def_keyword_loc = def_keyword_loc
|
1920
|
-
@operator_loc = operator_loc
|
1921
|
-
@lparen_loc = lparen_loc
|
1922
|
-
@rparen_loc = rparen_loc
|
1923
|
-
@equal_loc = equal_loc
|
1924
|
-
@end_keyword_loc = end_keyword_loc
|
1925
|
-
@location = location
|
1926
|
-
end
|
1927
|
-
|
1928
|
-
# def accept: (visitor: Visitor) -> void
|
1929
|
-
def accept(visitor)
|
1930
|
-
visitor.visit_def_node(self)
|
1931
|
-
end
|
1932
|
-
|
1933
|
-
# def child_nodes: () -> Array[nil | Node]
|
1934
|
-
def child_nodes
|
1935
|
-
[receiver, parameters, statements]
|
1936
|
-
end
|
1937
|
-
|
1938
|
-
# def deconstruct: () -> Array[nil | Node]
|
1939
|
-
alias deconstruct child_nodes
|
1940
|
-
|
1941
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
1942
|
-
def deconstruct_keys(keys)
|
1943
|
-
{ name_loc: name_loc, receiver: receiver, parameters: parameters, statements: statements, locals: locals, def_keyword_loc: def_keyword_loc, operator_loc: operator_loc, lparen_loc: lparen_loc, rparen_loc: rparen_loc, equal_loc: equal_loc, end_keyword_loc: end_keyword_loc, location: location }
|
1548
|
+
{ name_loc: name_loc, receiver: receiver, parameters: parameters, body: body, locals: locals, def_keyword_loc: def_keyword_loc, operator_loc: operator_loc, lparen_loc: lparen_loc, rparen_loc: rparen_loc, equal_loc: equal_loc, end_keyword_loc: end_keyword_loc, location: location }
|
1944
1549
|
end
|
1945
1550
|
|
1946
1551
|
# def name: () -> String
|
@@ -2490,137 +2095,33 @@ module YARP
|
|
2490
2095
|
def do_keyword
|
2491
2096
|
do_keyword_loc&.slice
|
2492
2097
|
end
|
2493
|
-
|
2494
|
-
# def end_keyword: () -> String
|
2495
|
-
def end_keyword
|
2496
|
-
end_keyword_loc.slice
|
2497
|
-
end
|
2498
|
-
end
|
2499
|
-
|
2500
|
-
# Represents forwarding all arguments to this method to another method.
|
2501
|
-
#
|
2502
|
-
# def foo(...)
|
2503
|
-
# bar(...)
|
2504
|
-
# ^^^^^^^^
|
2505
|
-
# end
|
2506
|
-
class ForwardingArgumentsNode < Node
|
2507
|
-
# def initialize: (location: Location) -> void
|
2508
|
-
def initialize(location)
|
2509
|
-
@location = location
|
2510
|
-
end
|
2511
|
-
|
2512
|
-
# def accept: (visitor: Visitor) -> void
|
2513
|
-
def accept(visitor)
|
2514
|
-
visitor.visit_forwarding_arguments_node(self)
|
2515
|
-
end
|
2516
|
-
|
2517
|
-
# def child_nodes: () -> Array[nil | Node]
|
2518
|
-
def child_nodes
|
2519
|
-
[]
|
2520
|
-
end
|
2521
|
-
|
2522
|
-
# def deconstruct: () -> Array[nil | Node]
|
2523
|
-
alias deconstruct child_nodes
|
2524
|
-
|
2525
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
2526
|
-
def deconstruct_keys(keys)
|
2527
|
-
{ location: location }
|
2528
|
-
end
|
2529
|
-
end
|
2530
|
-
|
2531
|
-
# Represents the use of the forwarding parameter in a method, block, or lambda declaration.
|
2532
|
-
#
|
2533
|
-
# def foo(...)
|
2534
|
-
# ^^^
|
2535
|
-
# end
|
2536
|
-
class ForwardingParameterNode < Node
|
2537
|
-
# def initialize: (location: Location) -> void
|
2538
|
-
def initialize(location)
|
2539
|
-
@location = location
|
2540
|
-
end
|
2541
|
-
|
2542
|
-
# def accept: (visitor: Visitor) -> void
|
2543
|
-
def accept(visitor)
|
2544
|
-
visitor.visit_forwarding_parameter_node(self)
|
2545
|
-
end
|
2546
|
-
|
2547
|
-
# def child_nodes: () -> Array[nil | Node]
|
2548
|
-
def child_nodes
|
2549
|
-
[]
|
2550
|
-
end
|
2551
|
-
|
2552
|
-
# def deconstruct: () -> Array[nil | Node]
|
2553
|
-
alias deconstruct child_nodes
|
2554
|
-
|
2555
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
2556
|
-
def deconstruct_keys(keys)
|
2557
|
-
{ location: location }
|
2558
|
-
end
|
2559
|
-
end
|
2560
|
-
|
2561
|
-
# Represents the use of the `super` keyword without parentheses or arguments.
|
2562
|
-
#
|
2563
|
-
# super
|
2564
|
-
# ^^^^^
|
2565
|
-
class ForwardingSuperNode < Node
|
2566
|
-
# attr_reader block: Node?
|
2567
|
-
attr_reader :block
|
2568
|
-
|
2569
|
-
# def initialize: (block: Node?, location: Location) -> void
|
2570
|
-
def initialize(block, location)
|
2571
|
-
@block = block
|
2572
|
-
@location = location
|
2573
|
-
end
|
2574
|
-
|
2575
|
-
# def accept: (visitor: Visitor) -> void
|
2576
|
-
def accept(visitor)
|
2577
|
-
visitor.visit_forwarding_super_node(self)
|
2578
|
-
end
|
2579
|
-
|
2580
|
-
# def child_nodes: () -> Array[nil | Node]
|
2581
|
-
def child_nodes
|
2582
|
-
[block]
|
2583
|
-
end
|
2584
|
-
|
2585
|
-
# def deconstruct: () -> Array[nil | Node]
|
2586
|
-
alias deconstruct child_nodes
|
2587
|
-
|
2588
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
2589
|
-
def deconstruct_keys(keys)
|
2590
|
-
{ block: block, location: location }
|
2591
|
-
end
|
2098
|
+
|
2099
|
+
# def end_keyword: () -> String
|
2100
|
+
def end_keyword
|
2101
|
+
end_keyword_loc.slice
|
2102
|
+
end
|
2592
2103
|
end
|
2593
2104
|
|
2594
|
-
# Represents
|
2105
|
+
# Represents forwarding all arguments to this method to another method.
|
2595
2106
|
#
|
2596
|
-
#
|
2597
|
-
#
|
2598
|
-
|
2599
|
-
|
2600
|
-
|
2601
|
-
|
2602
|
-
|
2603
|
-
attr_reader :operator_loc
|
2604
|
-
|
2605
|
-
# attr_reader value: Node
|
2606
|
-
attr_reader :value
|
2607
|
-
|
2608
|
-
# def initialize: (name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void
|
2609
|
-
def initialize(name_loc, operator_loc, value, location)
|
2610
|
-
@name_loc = name_loc
|
2611
|
-
@operator_loc = operator_loc
|
2612
|
-
@value = value
|
2107
|
+
# def foo(...)
|
2108
|
+
# bar(...)
|
2109
|
+
# ^^^^^^^^
|
2110
|
+
# end
|
2111
|
+
class ForwardingArgumentsNode < Node
|
2112
|
+
# def initialize: (location: Location) -> void
|
2113
|
+
def initialize(location)
|
2613
2114
|
@location = location
|
2614
2115
|
end
|
2615
2116
|
|
2616
2117
|
# def accept: (visitor: Visitor) -> void
|
2617
2118
|
def accept(visitor)
|
2618
|
-
visitor.
|
2119
|
+
visitor.visit_forwarding_arguments_node(self)
|
2619
2120
|
end
|
2620
2121
|
|
2621
2122
|
# def child_nodes: () -> Array[nil | Node]
|
2622
2123
|
def child_nodes
|
2623
|
-
[
|
2124
|
+
[]
|
2624
2125
|
end
|
2625
2126
|
|
2626
2127
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -2628,50 +2129,29 @@ module YARP
|
|
2628
2129
|
|
2629
2130
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
2630
2131
|
def deconstruct_keys(keys)
|
2631
|
-
{
|
2632
|
-
end
|
2633
|
-
|
2634
|
-
# def name: () -> String
|
2635
|
-
def name
|
2636
|
-
name_loc.slice
|
2637
|
-
end
|
2638
|
-
|
2639
|
-
# def operator: () -> String
|
2640
|
-
def operator
|
2641
|
-
operator_loc.slice
|
2132
|
+
{ location: location }
|
2642
2133
|
end
|
2643
2134
|
end
|
2644
2135
|
|
2645
|
-
# Represents the use of the
|
2136
|
+
# Represents the use of the forwarding parameter in a method, block, or lambda declaration.
|
2646
2137
|
#
|
2647
|
-
#
|
2648
|
-
#
|
2649
|
-
|
2650
|
-
|
2651
|
-
|
2652
|
-
|
2653
|
-
# attr_reader operator_loc: Location
|
2654
|
-
attr_reader :operator_loc
|
2655
|
-
|
2656
|
-
# attr_reader value: Node
|
2657
|
-
attr_reader :value
|
2658
|
-
|
2659
|
-
# def initialize: (name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void
|
2660
|
-
def initialize(name_loc, operator_loc, value, location)
|
2661
|
-
@name_loc = name_loc
|
2662
|
-
@operator_loc = operator_loc
|
2663
|
-
@value = value
|
2138
|
+
# def foo(...)
|
2139
|
+
# ^^^
|
2140
|
+
# end
|
2141
|
+
class ForwardingParameterNode < Node
|
2142
|
+
# def initialize: (location: Location) -> void
|
2143
|
+
def initialize(location)
|
2664
2144
|
@location = location
|
2665
2145
|
end
|
2666
2146
|
|
2667
2147
|
# def accept: (visitor: Visitor) -> void
|
2668
2148
|
def accept(visitor)
|
2669
|
-
visitor.
|
2149
|
+
visitor.visit_forwarding_parameter_node(self)
|
2670
2150
|
end
|
2671
2151
|
|
2672
2152
|
# def child_nodes: () -> Array[nil | Node]
|
2673
2153
|
def child_nodes
|
2674
|
-
[
|
2154
|
+
[]
|
2675
2155
|
end
|
2676
2156
|
|
2677
2157
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -2679,54 +2159,32 @@ module YARP
|
|
2679
2159
|
|
2680
2160
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
2681
2161
|
def deconstruct_keys(keys)
|
2682
|
-
{
|
2683
|
-
end
|
2684
|
-
|
2685
|
-
# def name: () -> String
|
2686
|
-
def name
|
2687
|
-
name_loc.slice
|
2688
|
-
end
|
2689
|
-
|
2690
|
-
# def operator: () -> String
|
2691
|
-
def operator
|
2692
|
-
operator_loc.slice
|
2162
|
+
{ location: location }
|
2693
2163
|
end
|
2694
2164
|
end
|
2695
2165
|
|
2696
|
-
# Represents
|
2166
|
+
# Represents the use of the `super` keyword without parentheses or arguments.
|
2697
2167
|
#
|
2698
|
-
#
|
2699
|
-
#
|
2700
|
-
class
|
2701
|
-
# attr_reader
|
2702
|
-
attr_reader :
|
2703
|
-
|
2704
|
-
# attr_reader operator_loc: Location
|
2705
|
-
attr_reader :operator_loc
|
2706
|
-
|
2707
|
-
# attr_reader value: Node
|
2708
|
-
attr_reader :value
|
2709
|
-
|
2710
|
-
# attr_reader operator: Symbol
|
2711
|
-
attr_reader :operator
|
2168
|
+
# super
|
2169
|
+
# ^^^^^
|
2170
|
+
class ForwardingSuperNode < Node
|
2171
|
+
# attr_reader block: Node?
|
2172
|
+
attr_reader :block
|
2712
2173
|
|
2713
|
-
# def initialize: (
|
2714
|
-
def initialize(
|
2715
|
-
@
|
2716
|
-
@operator_loc = operator_loc
|
2717
|
-
@value = value
|
2718
|
-
@operator = operator
|
2174
|
+
# def initialize: (block: Node?, location: Location) -> void
|
2175
|
+
def initialize(block, location)
|
2176
|
+
@block = block
|
2719
2177
|
@location = location
|
2720
2178
|
end
|
2721
2179
|
|
2722
2180
|
# def accept: (visitor: Visitor) -> void
|
2723
2181
|
def accept(visitor)
|
2724
|
-
visitor.
|
2182
|
+
visitor.visit_forwarding_super_node(self)
|
2725
2183
|
end
|
2726
2184
|
|
2727
2185
|
# def child_nodes: () -> Array[nil | Node]
|
2728
2186
|
def child_nodes
|
2729
|
-
[
|
2187
|
+
[block]
|
2730
2188
|
end
|
2731
2189
|
|
2732
2190
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -2734,12 +2192,7 @@ module YARP
|
|
2734
2192
|
|
2735
2193
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
2736
2194
|
def deconstruct_keys(keys)
|
2737
|
-
{
|
2738
|
-
end
|
2739
|
-
|
2740
|
-
# def name: () -> String
|
2741
|
-
def name
|
2742
|
-
name_loc.slice
|
2195
|
+
{ block: block, location: location }
|
2743
2196
|
end
|
2744
2197
|
end
|
2745
2198
|
|
@@ -2956,170 +2409,31 @@ module YARP
|
|
2956
2409
|
# attr_reader consequent: Node?
|
2957
2410
|
attr_reader :consequent
|
2958
2411
|
|
2959
|
-
# attr_reader end_keyword_loc: Location?
|
2960
|
-
attr_reader :end_keyword_loc
|
2961
|
-
|
2962
|
-
# def initialize: (if_keyword_loc: Location?, predicate: Node, statements: Node?, consequent: Node?, end_keyword_loc: Location?, location: Location) -> void
|
2963
|
-
def initialize(if_keyword_loc, predicate, statements, consequent, end_keyword_loc, location)
|
2964
|
-
@if_keyword_loc = if_keyword_loc
|
2965
|
-
@predicate = predicate
|
2966
|
-
@statements = statements
|
2967
|
-
@consequent = consequent
|
2968
|
-
@end_keyword_loc = end_keyword_loc
|
2969
|
-
@location = location
|
2970
|
-
end
|
2971
|
-
|
2972
|
-
# def accept: (visitor: Visitor) -> void
|
2973
|
-
def accept(visitor)
|
2974
|
-
visitor.visit_if_node(self)
|
2975
|
-
end
|
2976
|
-
|
2977
|
-
def set_newline_flag(newline_marked)
|
2978
|
-
predicate.set_newline_flag(newline_marked)
|
2979
|
-
end
|
2980
|
-
|
2981
|
-
# def child_nodes: () -> Array[nil | Node]
|
2982
|
-
def child_nodes
|
2983
|
-
[predicate, statements, consequent]
|
2984
|
-
end
|
2985
|
-
|
2986
|
-
# def deconstruct: () -> Array[nil | Node]
|
2987
|
-
alias deconstruct child_nodes
|
2988
|
-
|
2989
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
2990
|
-
def deconstruct_keys(keys)
|
2991
|
-
{ if_keyword_loc: if_keyword_loc, predicate: predicate, statements: statements, consequent: consequent, end_keyword_loc: end_keyword_loc, location: location }
|
2992
|
-
end
|
2993
|
-
|
2994
|
-
# def if_keyword: () -> String?
|
2995
|
-
def if_keyword
|
2996
|
-
if_keyword_loc&.slice
|
2997
|
-
end
|
2998
|
-
|
2999
|
-
# def end_keyword: () -> String?
|
3000
|
-
def end_keyword
|
3001
|
-
end_keyword_loc&.slice
|
3002
|
-
end
|
3003
|
-
end
|
3004
|
-
|
3005
|
-
# Represents an imaginary number literal.
|
3006
|
-
#
|
3007
|
-
# 1.0i
|
3008
|
-
# ^^^^
|
3009
|
-
class ImaginaryNode < Node
|
3010
|
-
# attr_reader numeric: Node
|
3011
|
-
attr_reader :numeric
|
3012
|
-
|
3013
|
-
# def initialize: (numeric: Node, location: Location) -> void
|
3014
|
-
def initialize(numeric, location)
|
3015
|
-
@numeric = numeric
|
3016
|
-
@location = location
|
3017
|
-
end
|
3018
|
-
|
3019
|
-
# def accept: (visitor: Visitor) -> void
|
3020
|
-
def accept(visitor)
|
3021
|
-
visitor.visit_imaginary_node(self)
|
3022
|
-
end
|
3023
|
-
|
3024
|
-
# def child_nodes: () -> Array[nil | Node]
|
3025
|
-
def child_nodes
|
3026
|
-
[numeric]
|
3027
|
-
end
|
3028
|
-
|
3029
|
-
# def deconstruct: () -> Array[nil | Node]
|
3030
|
-
alias deconstruct child_nodes
|
3031
|
-
|
3032
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3033
|
-
def deconstruct_keys(keys)
|
3034
|
-
{ numeric: numeric, location: location }
|
3035
|
-
end
|
3036
|
-
end
|
3037
|
-
|
3038
|
-
# Represents the use of the `in` keyword in a case statement.
|
3039
|
-
#
|
3040
|
-
# case a; in b then c end
|
3041
|
-
# ^^^^^^^^^^^
|
3042
|
-
class InNode < Node
|
3043
|
-
# attr_reader pattern: Node
|
3044
|
-
attr_reader :pattern
|
3045
|
-
|
3046
|
-
# attr_reader statements: Node?
|
3047
|
-
attr_reader :statements
|
3048
|
-
|
3049
|
-
# attr_reader in_loc: Location
|
3050
|
-
attr_reader :in_loc
|
3051
|
-
|
3052
|
-
# attr_reader then_loc: Location?
|
3053
|
-
attr_reader :then_loc
|
3054
|
-
|
3055
|
-
# def initialize: (pattern: Node, statements: Node?, in_loc: Location, then_loc: Location?, location: Location) -> void
|
3056
|
-
def initialize(pattern, statements, in_loc, then_loc, location)
|
3057
|
-
@pattern = pattern
|
3058
|
-
@statements = statements
|
3059
|
-
@in_loc = in_loc
|
3060
|
-
@then_loc = then_loc
|
3061
|
-
@location = location
|
3062
|
-
end
|
3063
|
-
|
3064
|
-
# def accept: (visitor: Visitor) -> void
|
3065
|
-
def accept(visitor)
|
3066
|
-
visitor.visit_in_node(self)
|
3067
|
-
end
|
3068
|
-
|
3069
|
-
# def child_nodes: () -> Array[nil | Node]
|
3070
|
-
def child_nodes
|
3071
|
-
[pattern, statements]
|
3072
|
-
end
|
3073
|
-
|
3074
|
-
# def deconstruct: () -> Array[nil | Node]
|
3075
|
-
alias deconstruct child_nodes
|
3076
|
-
|
3077
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3078
|
-
def deconstruct_keys(keys)
|
3079
|
-
{ pattern: pattern, statements: statements, in_loc: in_loc, then_loc: then_loc, location: location }
|
3080
|
-
end
|
3081
|
-
|
3082
|
-
# def in: () -> String
|
3083
|
-
def in
|
3084
|
-
in_loc.slice
|
3085
|
-
end
|
3086
|
-
|
3087
|
-
# def then: () -> String?
|
3088
|
-
def then
|
3089
|
-
then_loc&.slice
|
3090
|
-
end
|
3091
|
-
end
|
3092
|
-
|
3093
|
-
# Represents the use of the `&&=` operator for assignment to an instance variable.
|
3094
|
-
#
|
3095
|
-
# @target &&= value
|
3096
|
-
# ^^^^^^^^^^^^^^^^^
|
3097
|
-
class InstanceVariableOperatorAndWriteNode < Node
|
3098
|
-
# attr_reader name_loc: Location
|
3099
|
-
attr_reader :name_loc
|
3100
|
-
|
3101
|
-
# attr_reader operator_loc: Location
|
3102
|
-
attr_reader :operator_loc
|
3103
|
-
|
3104
|
-
# attr_reader value: Node
|
3105
|
-
attr_reader :value
|
2412
|
+
# attr_reader end_keyword_loc: Location?
|
2413
|
+
attr_reader :end_keyword_loc
|
3106
2414
|
|
3107
|
-
# def initialize: (
|
3108
|
-
def initialize(
|
3109
|
-
@
|
3110
|
-
@
|
3111
|
-
@
|
2415
|
+
# def initialize: (if_keyword_loc: Location?, predicate: Node, statements: Node?, consequent: Node?, end_keyword_loc: Location?, location: Location) -> void
|
2416
|
+
def initialize(if_keyword_loc, predicate, statements, consequent, end_keyword_loc, location)
|
2417
|
+
@if_keyword_loc = if_keyword_loc
|
2418
|
+
@predicate = predicate
|
2419
|
+
@statements = statements
|
2420
|
+
@consequent = consequent
|
2421
|
+
@end_keyword_loc = end_keyword_loc
|
3112
2422
|
@location = location
|
3113
2423
|
end
|
3114
2424
|
|
3115
2425
|
# def accept: (visitor: Visitor) -> void
|
3116
2426
|
def accept(visitor)
|
3117
|
-
visitor.
|
2427
|
+
visitor.visit_if_node(self)
|
2428
|
+
end
|
2429
|
+
|
2430
|
+
def set_newline_flag(newline_marked)
|
2431
|
+
predicate.set_newline_flag(newline_marked)
|
3118
2432
|
end
|
3119
2433
|
|
3120
2434
|
# def child_nodes: () -> Array[nil | Node]
|
3121
2435
|
def child_nodes
|
3122
|
-
[
|
2436
|
+
[predicate, statements, consequent]
|
3123
2437
|
end
|
3124
2438
|
|
3125
2439
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -3127,50 +2441,42 @@ module YARP
|
|
3127
2441
|
|
3128
2442
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3129
2443
|
def deconstruct_keys(keys)
|
3130
|
-
{
|
2444
|
+
{ if_keyword_loc: if_keyword_loc, predicate: predicate, statements: statements, consequent: consequent, end_keyword_loc: end_keyword_loc, location: location }
|
3131
2445
|
end
|
3132
2446
|
|
3133
|
-
# def
|
3134
|
-
def
|
3135
|
-
|
2447
|
+
# def if_keyword: () -> String?
|
2448
|
+
def if_keyword
|
2449
|
+
if_keyword_loc&.slice
|
3136
2450
|
end
|
3137
2451
|
|
3138
|
-
# def
|
3139
|
-
def
|
3140
|
-
|
2452
|
+
# def end_keyword: () -> String?
|
2453
|
+
def end_keyword
|
2454
|
+
end_keyword_loc&.slice
|
3141
2455
|
end
|
3142
2456
|
end
|
3143
2457
|
|
3144
|
-
# Represents
|
2458
|
+
# Represents an imaginary number literal.
|
3145
2459
|
#
|
3146
|
-
#
|
3147
|
-
#
|
3148
|
-
class
|
3149
|
-
# attr_reader
|
3150
|
-
attr_reader :
|
3151
|
-
|
3152
|
-
# attr_reader operator_loc: Location
|
3153
|
-
attr_reader :operator_loc
|
3154
|
-
|
3155
|
-
# attr_reader value: Node
|
3156
|
-
attr_reader :value
|
2460
|
+
# 1.0i
|
2461
|
+
# ^^^^
|
2462
|
+
class ImaginaryNode < Node
|
2463
|
+
# attr_reader numeric: Node
|
2464
|
+
attr_reader :numeric
|
3157
2465
|
|
3158
|
-
# def initialize: (
|
3159
|
-
def initialize(
|
3160
|
-
@
|
3161
|
-
@operator_loc = operator_loc
|
3162
|
-
@value = value
|
2466
|
+
# def initialize: (numeric: Node, location: Location) -> void
|
2467
|
+
def initialize(numeric, location)
|
2468
|
+
@numeric = numeric
|
3163
2469
|
@location = location
|
3164
2470
|
end
|
3165
2471
|
|
3166
2472
|
# def accept: (visitor: Visitor) -> void
|
3167
2473
|
def accept(visitor)
|
3168
|
-
visitor.
|
2474
|
+
visitor.visit_imaginary_node(self)
|
3169
2475
|
end
|
3170
2476
|
|
3171
2477
|
# def child_nodes: () -> Array[nil | Node]
|
3172
2478
|
def child_nodes
|
3173
|
-
[
|
2479
|
+
[numeric]
|
3174
2480
|
end
|
3175
2481
|
|
3176
2482
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -3178,54 +2484,44 @@ module YARP
|
|
3178
2484
|
|
3179
2485
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3180
2486
|
def deconstruct_keys(keys)
|
3181
|
-
{
|
3182
|
-
end
|
3183
|
-
|
3184
|
-
# def name: () -> String
|
3185
|
-
def name
|
3186
|
-
name_loc.slice
|
3187
|
-
end
|
3188
|
-
|
3189
|
-
# def operator: () -> String
|
3190
|
-
def operator
|
3191
|
-
operator_loc.slice
|
2487
|
+
{ numeric: numeric, location: location }
|
3192
2488
|
end
|
3193
2489
|
end
|
3194
2490
|
|
3195
|
-
# Represents
|
2491
|
+
# Represents the use of the `in` keyword in a case statement.
|
3196
2492
|
#
|
3197
|
-
#
|
3198
|
-
#
|
3199
|
-
class
|
3200
|
-
# attr_reader
|
3201
|
-
attr_reader :
|
2493
|
+
# case a; in b then c end
|
2494
|
+
# ^^^^^^^^^^^
|
2495
|
+
class InNode < Node
|
2496
|
+
# attr_reader pattern: Node
|
2497
|
+
attr_reader :pattern
|
3202
2498
|
|
3203
|
-
# attr_reader
|
3204
|
-
attr_reader :
|
2499
|
+
# attr_reader statements: Node?
|
2500
|
+
attr_reader :statements
|
3205
2501
|
|
3206
|
-
# attr_reader
|
3207
|
-
attr_reader :
|
2502
|
+
# attr_reader in_loc: Location
|
2503
|
+
attr_reader :in_loc
|
3208
2504
|
|
3209
|
-
# attr_reader
|
3210
|
-
attr_reader :
|
2505
|
+
# attr_reader then_loc: Location?
|
2506
|
+
attr_reader :then_loc
|
3211
2507
|
|
3212
|
-
# def initialize: (
|
3213
|
-
def initialize(
|
3214
|
-
@
|
3215
|
-
@
|
3216
|
-
@
|
3217
|
-
@
|
2508
|
+
# def initialize: (pattern: Node, statements: Node?, in_loc: Location, then_loc: Location?, location: Location) -> void
|
2509
|
+
def initialize(pattern, statements, in_loc, then_loc, location)
|
2510
|
+
@pattern = pattern
|
2511
|
+
@statements = statements
|
2512
|
+
@in_loc = in_loc
|
2513
|
+
@then_loc = then_loc
|
3218
2514
|
@location = location
|
3219
2515
|
end
|
3220
2516
|
|
3221
2517
|
# def accept: (visitor: Visitor) -> void
|
3222
2518
|
def accept(visitor)
|
3223
|
-
visitor.
|
2519
|
+
visitor.visit_in_node(self)
|
3224
2520
|
end
|
3225
2521
|
|
3226
2522
|
# def child_nodes: () -> Array[nil | Node]
|
3227
2523
|
def child_nodes
|
3228
|
-
[
|
2524
|
+
[pattern, statements]
|
3229
2525
|
end
|
3230
2526
|
|
3231
2527
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -3233,12 +2529,17 @@ module YARP
|
|
3233
2529
|
|
3234
2530
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3235
2531
|
def deconstruct_keys(keys)
|
3236
|
-
{
|
2532
|
+
{ pattern: pattern, statements: statements, in_loc: in_loc, then_loc: then_loc, location: location }
|
3237
2533
|
end
|
3238
2534
|
|
3239
|
-
# def
|
3240
|
-
def
|
3241
|
-
|
2535
|
+
# def in: () -> String
|
2536
|
+
def in
|
2537
|
+
in_loc.slice
|
2538
|
+
end
|
2539
|
+
|
2540
|
+
# def then: () -> String?
|
2541
|
+
def then
|
2542
|
+
then_loc&.slice
|
3242
2543
|
end
|
3243
2544
|
end
|
3244
2545
|
|
@@ -3690,202 +2991,42 @@ module YARP
|
|
3690
2991
|
|
3691
2992
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3692
2993
|
def deconstruct_keys(keys)
|
3693
|
-
{ name_loc: name_loc, value: value, location: location }
|
3694
|
-
end
|
3695
|
-
|
3696
|
-
# def name: () -> String
|
3697
|
-
def name
|
3698
|
-
name_loc.slice
|
3699
|
-
end
|
3700
|
-
end
|
3701
|
-
|
3702
|
-
# Represents a keyword rest parameter to a method, block, or lambda definition.
|
3703
|
-
#
|
3704
|
-
# def a(**b)
|
3705
|
-
# ^^^
|
3706
|
-
# end
|
3707
|
-
class KeywordRestParameterNode < Node
|
3708
|
-
# attr_reader operator_loc: Location
|
3709
|
-
attr_reader :operator_loc
|
3710
|
-
|
3711
|
-
# attr_reader name_loc: Location?
|
3712
|
-
attr_reader :name_loc
|
3713
|
-
|
3714
|
-
# def initialize: (operator_loc: Location, name_loc: Location?, location: Location) -> void
|
3715
|
-
def initialize(operator_loc, name_loc, location)
|
3716
|
-
@operator_loc = operator_loc
|
3717
|
-
@name_loc = name_loc
|
3718
|
-
@location = location
|
3719
|
-
end
|
3720
|
-
|
3721
|
-
# def accept: (visitor: Visitor) -> void
|
3722
|
-
def accept(visitor)
|
3723
|
-
visitor.visit_keyword_rest_parameter_node(self)
|
3724
|
-
end
|
3725
|
-
|
3726
|
-
# def child_nodes: () -> Array[nil | Node]
|
3727
|
-
def child_nodes
|
3728
|
-
[]
|
3729
|
-
end
|
3730
|
-
|
3731
|
-
# def deconstruct: () -> Array[nil | Node]
|
3732
|
-
alias deconstruct child_nodes
|
3733
|
-
|
3734
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3735
|
-
def deconstruct_keys(keys)
|
3736
|
-
{ operator_loc: operator_loc, name_loc: name_loc, location: location }
|
3737
|
-
end
|
3738
|
-
|
3739
|
-
# def operator: () -> String
|
3740
|
-
def operator
|
3741
|
-
operator_loc.slice
|
3742
|
-
end
|
3743
|
-
|
3744
|
-
# def name: () -> String?
|
3745
|
-
def name
|
3746
|
-
name_loc&.slice
|
3747
|
-
end
|
3748
|
-
end
|
3749
|
-
|
3750
|
-
# Represents using a lambda literal (not the lambda method call).
|
3751
|
-
#
|
3752
|
-
# ->(value) { value * 2 }
|
3753
|
-
# ^^^^^^^^^^^^^^^^^^^^^^^
|
3754
|
-
class LambdaNode < Node
|
3755
|
-
# attr_reader locals: Array[Symbol]
|
3756
|
-
attr_reader :locals
|
3757
|
-
|
3758
|
-
# attr_reader opening_loc: Location
|
3759
|
-
attr_reader :opening_loc
|
3760
|
-
|
3761
|
-
# attr_reader parameters: Node?
|
3762
|
-
attr_reader :parameters
|
3763
|
-
|
3764
|
-
# attr_reader statements: Node?
|
3765
|
-
attr_reader :statements
|
3766
|
-
|
3767
|
-
# def initialize: (locals: Array[Symbol], opening_loc: Location, parameters: Node?, statements: Node?, location: Location) -> void
|
3768
|
-
def initialize(locals, opening_loc, parameters, statements, location)
|
3769
|
-
@locals = locals
|
3770
|
-
@opening_loc = opening_loc
|
3771
|
-
@parameters = parameters
|
3772
|
-
@statements = statements
|
3773
|
-
@location = location
|
3774
|
-
end
|
3775
|
-
|
3776
|
-
# def accept: (visitor: Visitor) -> void
|
3777
|
-
def accept(visitor)
|
3778
|
-
visitor.visit_lambda_node(self)
|
3779
|
-
end
|
3780
|
-
|
3781
|
-
# def child_nodes: () -> Array[nil | Node]
|
3782
|
-
def child_nodes
|
3783
|
-
[parameters, statements]
|
3784
|
-
end
|
3785
|
-
|
3786
|
-
# def deconstruct: () -> Array[nil | Node]
|
3787
|
-
alias deconstruct child_nodes
|
3788
|
-
|
3789
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3790
|
-
def deconstruct_keys(keys)
|
3791
|
-
{ locals: locals, opening_loc: opening_loc, parameters: parameters, statements: statements, location: location }
|
3792
|
-
end
|
3793
|
-
|
3794
|
-
# def opening: () -> String
|
3795
|
-
def opening
|
3796
|
-
opening_loc.slice
|
3797
|
-
end
|
3798
|
-
end
|
3799
|
-
|
3800
|
-
# Represents the use of the `&&=` operator for assignment to a local variable.
|
3801
|
-
#
|
3802
|
-
# target &&= value
|
3803
|
-
# ^^^^^^^^^^^^^^^^
|
3804
|
-
class LocalVariableOperatorAndWriteNode < Node
|
3805
|
-
# attr_reader name_loc: Location
|
3806
|
-
attr_reader :name_loc
|
3807
|
-
|
3808
|
-
# attr_reader operator_loc: Location
|
3809
|
-
attr_reader :operator_loc
|
3810
|
-
|
3811
|
-
# attr_reader value: Node
|
3812
|
-
attr_reader :value
|
3813
|
-
|
3814
|
-
# attr_reader constant_id: Symbol
|
3815
|
-
attr_reader :constant_id
|
3816
|
-
|
3817
|
-
# def initialize: (name_loc: Location, operator_loc: Location, value: Node, constant_id: Symbol, location: Location) -> void
|
3818
|
-
def initialize(name_loc, operator_loc, value, constant_id, location)
|
3819
|
-
@name_loc = name_loc
|
3820
|
-
@operator_loc = operator_loc
|
3821
|
-
@value = value
|
3822
|
-
@constant_id = constant_id
|
3823
|
-
@location = location
|
3824
|
-
end
|
3825
|
-
|
3826
|
-
# def accept: (visitor: Visitor) -> void
|
3827
|
-
def accept(visitor)
|
3828
|
-
visitor.visit_local_variable_operator_and_write_node(self)
|
3829
|
-
end
|
3830
|
-
|
3831
|
-
# def child_nodes: () -> Array[nil | Node]
|
3832
|
-
def child_nodes
|
3833
|
-
[value]
|
3834
|
-
end
|
3835
|
-
|
3836
|
-
# def deconstruct: () -> Array[nil | Node]
|
3837
|
-
alias deconstruct child_nodes
|
3838
|
-
|
3839
|
-
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3840
|
-
def deconstruct_keys(keys)
|
3841
|
-
{ name_loc: name_loc, operator_loc: operator_loc, value: value, constant_id: constant_id, location: location }
|
2994
|
+
{ name_loc: name_loc, value: value, location: location }
|
3842
2995
|
end
|
3843
2996
|
|
3844
2997
|
# def name: () -> String
|
3845
2998
|
def name
|
3846
2999
|
name_loc.slice
|
3847
3000
|
end
|
3848
|
-
|
3849
|
-
# def operator: () -> String
|
3850
|
-
def operator
|
3851
|
-
operator_loc.slice
|
3852
|
-
end
|
3853
3001
|
end
|
3854
3002
|
|
3855
|
-
# Represents
|
3003
|
+
# Represents a keyword rest parameter to a method, block, or lambda definition.
|
3856
3004
|
#
|
3857
|
-
#
|
3858
|
-
#
|
3859
|
-
|
3860
|
-
|
3861
|
-
attr_reader :name_loc
|
3862
|
-
|
3005
|
+
# def a(**b)
|
3006
|
+
# ^^^
|
3007
|
+
# end
|
3008
|
+
class KeywordRestParameterNode < Node
|
3863
3009
|
# attr_reader operator_loc: Location
|
3864
3010
|
attr_reader :operator_loc
|
3865
3011
|
|
3866
|
-
# attr_reader
|
3867
|
-
attr_reader :
|
3868
|
-
|
3869
|
-
# attr_reader constant_id: Symbol
|
3870
|
-
attr_reader :constant_id
|
3012
|
+
# attr_reader name_loc: Location?
|
3013
|
+
attr_reader :name_loc
|
3871
3014
|
|
3872
|
-
# def initialize: (
|
3873
|
-
def initialize(
|
3874
|
-
@name_loc = name_loc
|
3015
|
+
# def initialize: (operator_loc: Location, name_loc: Location?, location: Location) -> void
|
3016
|
+
def initialize(operator_loc, name_loc, location)
|
3875
3017
|
@operator_loc = operator_loc
|
3876
|
-
@
|
3877
|
-
@constant_id = constant_id
|
3018
|
+
@name_loc = name_loc
|
3878
3019
|
@location = location
|
3879
3020
|
end
|
3880
3021
|
|
3881
3022
|
# def accept: (visitor: Visitor) -> void
|
3882
3023
|
def accept(visitor)
|
3883
|
-
visitor.
|
3024
|
+
visitor.visit_keyword_rest_parameter_node(self)
|
3884
3025
|
end
|
3885
3026
|
|
3886
3027
|
# def child_nodes: () -> Array[nil | Node]
|
3887
3028
|
def child_nodes
|
3888
|
-
[
|
3029
|
+
[]
|
3889
3030
|
end
|
3890
3031
|
|
3891
3032
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -3893,58 +3034,54 @@ module YARP
|
|
3893
3034
|
|
3894
3035
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3895
3036
|
def deconstruct_keys(keys)
|
3896
|
-
{
|
3897
|
-
end
|
3898
|
-
|
3899
|
-
# def name: () -> String
|
3900
|
-
def name
|
3901
|
-
name_loc.slice
|
3037
|
+
{ operator_loc: operator_loc, name_loc: name_loc, location: location }
|
3902
3038
|
end
|
3903
3039
|
|
3904
3040
|
# def operator: () -> String
|
3905
3041
|
def operator
|
3906
3042
|
operator_loc.slice
|
3907
3043
|
end
|
3044
|
+
|
3045
|
+
# def name: () -> String?
|
3046
|
+
def name
|
3047
|
+
name_loc&.slice
|
3048
|
+
end
|
3908
3049
|
end
|
3909
3050
|
|
3910
|
-
# Represents
|
3051
|
+
# Represents using a lambda literal (not the lambda method call).
|
3911
3052
|
#
|
3912
|
-
#
|
3913
|
-
#
|
3914
|
-
class
|
3915
|
-
# attr_reader
|
3916
|
-
attr_reader :
|
3917
|
-
|
3918
|
-
# attr_reader operator_loc: Location
|
3919
|
-
attr_reader :operator_loc
|
3053
|
+
# ->(value) { value * 2 }
|
3054
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^
|
3055
|
+
class LambdaNode < Node
|
3056
|
+
# attr_reader locals: Array[Symbol]
|
3057
|
+
attr_reader :locals
|
3920
3058
|
|
3921
|
-
# attr_reader
|
3922
|
-
attr_reader :
|
3059
|
+
# attr_reader opening_loc: Location
|
3060
|
+
attr_reader :opening_loc
|
3923
3061
|
|
3924
|
-
# attr_reader
|
3925
|
-
attr_reader :
|
3062
|
+
# attr_reader parameters: Node?
|
3063
|
+
attr_reader :parameters
|
3926
3064
|
|
3927
|
-
# attr_reader
|
3928
|
-
attr_reader :
|
3065
|
+
# attr_reader body: Node?
|
3066
|
+
attr_reader :body
|
3929
3067
|
|
3930
|
-
# def initialize: (
|
3931
|
-
def initialize(
|
3932
|
-
@
|
3933
|
-
@
|
3934
|
-
@
|
3935
|
-
@
|
3936
|
-
@operator_id = operator_id
|
3068
|
+
# def initialize: (locals: Array[Symbol], opening_loc: Location, parameters: Node?, body: Node?, location: Location) -> void
|
3069
|
+
def initialize(locals, opening_loc, parameters, body, location)
|
3070
|
+
@locals = locals
|
3071
|
+
@opening_loc = opening_loc
|
3072
|
+
@parameters = parameters
|
3073
|
+
@body = body
|
3937
3074
|
@location = location
|
3938
3075
|
end
|
3939
3076
|
|
3940
3077
|
# def accept: (visitor: Visitor) -> void
|
3941
3078
|
def accept(visitor)
|
3942
|
-
visitor.
|
3079
|
+
visitor.visit_lambda_node(self)
|
3943
3080
|
end
|
3944
3081
|
|
3945
3082
|
# def child_nodes: () -> Array[nil | Node]
|
3946
3083
|
def child_nodes
|
3947
|
-
[
|
3084
|
+
[parameters, body]
|
3948
3085
|
end
|
3949
3086
|
|
3950
3087
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -3952,17 +3089,12 @@ module YARP
|
|
3952
3089
|
|
3953
3090
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3954
3091
|
def deconstruct_keys(keys)
|
3955
|
-
{
|
3956
|
-
end
|
3957
|
-
|
3958
|
-
# def name: () -> String
|
3959
|
-
def name
|
3960
|
-
name_loc.slice
|
3092
|
+
{ locals: locals, opening_loc: opening_loc, parameters: parameters, body: body, location: location }
|
3961
3093
|
end
|
3962
3094
|
|
3963
|
-
# def
|
3964
|
-
def
|
3965
|
-
|
3095
|
+
# def opening: () -> String
|
3096
|
+
def opening
|
3097
|
+
opening_loc.slice
|
3966
3098
|
end
|
3967
3099
|
end
|
3968
3100
|
|
@@ -4197,18 +3329,18 @@ module YARP
|
|
4197
3329
|
# attr_reader constant_path: Node
|
4198
3330
|
attr_reader :constant_path
|
4199
3331
|
|
4200
|
-
# attr_reader
|
4201
|
-
attr_reader :
|
3332
|
+
# attr_reader body: Node?
|
3333
|
+
attr_reader :body
|
4202
3334
|
|
4203
3335
|
# attr_reader end_keyword_loc: Location
|
4204
3336
|
attr_reader :end_keyword_loc
|
4205
3337
|
|
4206
|
-
# def initialize: (locals: Array[Symbol], module_keyword_loc: Location, constant_path: Node,
|
4207
|
-
def initialize(locals, module_keyword_loc, constant_path,
|
3338
|
+
# def initialize: (locals: Array[Symbol], module_keyword_loc: Location, constant_path: Node, body: Node?, end_keyword_loc: Location, location: Location) -> void
|
3339
|
+
def initialize(locals, module_keyword_loc, constant_path, body, end_keyword_loc, location)
|
4208
3340
|
@locals = locals
|
4209
3341
|
@module_keyword_loc = module_keyword_loc
|
4210
3342
|
@constant_path = constant_path
|
4211
|
-
@
|
3343
|
+
@body = body
|
4212
3344
|
@end_keyword_loc = end_keyword_loc
|
4213
3345
|
@location = location
|
4214
3346
|
end
|
@@ -4220,7 +3352,7 @@ module YARP
|
|
4220
3352
|
|
4221
3353
|
# def child_nodes: () -> Array[nil | Node]
|
4222
3354
|
def child_nodes
|
4223
|
-
[constant_path,
|
3355
|
+
[constant_path, body]
|
4224
3356
|
end
|
4225
3357
|
|
4226
3358
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -4228,7 +3360,7 @@ module YARP
|
|
4228
3360
|
|
4229
3361
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
4230
3362
|
def deconstruct_keys(keys)
|
4231
|
-
{ locals: locals, module_keyword_loc: module_keyword_loc, constant_path: constant_path,
|
3363
|
+
{ locals: locals, module_keyword_loc: module_keyword_loc, constant_path: constant_path, body: body, end_keyword_loc: end_keyword_loc, location: location }
|
4232
3364
|
end
|
4233
3365
|
|
4234
3366
|
# def module_keyword: () -> String
|
@@ -4454,6 +3586,51 @@ module YARP
|
|
4454
3586
|
end
|
4455
3587
|
end
|
4456
3588
|
|
3589
|
+
# Represents the use of an operator on a write.
|
3590
|
+
#
|
3591
|
+
# target += value
|
3592
|
+
# ^^^^^^^^^^^^^^^
|
3593
|
+
class OperatorWriteNode < Node
|
3594
|
+
# attr_reader target: Node
|
3595
|
+
attr_reader :target
|
3596
|
+
|
3597
|
+
# attr_reader operator_loc: Location
|
3598
|
+
attr_reader :operator_loc
|
3599
|
+
|
3600
|
+
# attr_reader operator: Symbol
|
3601
|
+
attr_reader :operator
|
3602
|
+
|
3603
|
+
# attr_reader value: Node
|
3604
|
+
attr_reader :value
|
3605
|
+
|
3606
|
+
# def initialize: (target: Node, operator_loc: Location, operator: Symbol, value: Node, location: Location) -> void
|
3607
|
+
def initialize(target, operator_loc, operator, value, location)
|
3608
|
+
@target = target
|
3609
|
+
@operator_loc = operator_loc
|
3610
|
+
@operator = operator
|
3611
|
+
@value = value
|
3612
|
+
@location = location
|
3613
|
+
end
|
3614
|
+
|
3615
|
+
# def accept: (visitor: Visitor) -> void
|
3616
|
+
def accept(visitor)
|
3617
|
+
visitor.visit_operator_write_node(self)
|
3618
|
+
end
|
3619
|
+
|
3620
|
+
# def child_nodes: () -> Array[nil | Node]
|
3621
|
+
def child_nodes
|
3622
|
+
[target, value]
|
3623
|
+
end
|
3624
|
+
|
3625
|
+
# def deconstruct: () -> Array[nil | Node]
|
3626
|
+
alias deconstruct child_nodes
|
3627
|
+
|
3628
|
+
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3629
|
+
def deconstruct_keys(keys)
|
3630
|
+
{ target: target, operator_loc: operator_loc, operator: operator, value: value, location: location }
|
3631
|
+
end
|
3632
|
+
end
|
3633
|
+
|
4457
3634
|
# Represents an optional parameter to a method, block, or lambda definition.
|
4458
3635
|
#
|
4459
3636
|
# def a(b = 1)
|
@@ -4556,6 +3733,52 @@ module YARP
|
|
4556
3733
|
end
|
4557
3734
|
end
|
4558
3735
|
|
3736
|
+
# Represents the use of the `||=` operator.
|
3737
|
+
#
|
3738
|
+
# target ||= value
|
3739
|
+
# ^^^^^^^^^^^^^^^^
|
3740
|
+
class OrWriteNode < Node
|
3741
|
+
# attr_reader target: Node
|
3742
|
+
attr_reader :target
|
3743
|
+
|
3744
|
+
# attr_reader value: Node
|
3745
|
+
attr_reader :value
|
3746
|
+
|
3747
|
+
# attr_reader operator_loc: Location
|
3748
|
+
attr_reader :operator_loc
|
3749
|
+
|
3750
|
+
# def initialize: (target: Node, value: Node, operator_loc: Location, location: Location) -> void
|
3751
|
+
def initialize(target, value, operator_loc, location)
|
3752
|
+
@target = target
|
3753
|
+
@value = value
|
3754
|
+
@operator_loc = operator_loc
|
3755
|
+
@location = location
|
3756
|
+
end
|
3757
|
+
|
3758
|
+
# def accept: (visitor: Visitor) -> void
|
3759
|
+
def accept(visitor)
|
3760
|
+
visitor.visit_or_write_node(self)
|
3761
|
+
end
|
3762
|
+
|
3763
|
+
# def child_nodes: () -> Array[nil | Node]
|
3764
|
+
def child_nodes
|
3765
|
+
[target, value]
|
3766
|
+
end
|
3767
|
+
|
3768
|
+
# def deconstruct: () -> Array[nil | Node]
|
3769
|
+
alias deconstruct child_nodes
|
3770
|
+
|
3771
|
+
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
3772
|
+
def deconstruct_keys(keys)
|
3773
|
+
{ target: target, value: value, operator_loc: operator_loc, location: location }
|
3774
|
+
end
|
3775
|
+
|
3776
|
+
# def operator: () -> String
|
3777
|
+
def operator
|
3778
|
+
operator_loc.slice
|
3779
|
+
end
|
3780
|
+
end
|
3781
|
+
|
4559
3782
|
# Represents the list of parameters on a method, block, or lambda definition.
|
4560
3783
|
#
|
4561
3784
|
# def a(b, c, d)
|
@@ -4619,8 +3842,8 @@ module YARP
|
|
4619
3842
|
# (10 + 34)
|
4620
3843
|
# ^^^^^^^^^
|
4621
3844
|
class ParenthesesNode < Node
|
4622
|
-
# attr_reader
|
4623
|
-
attr_reader :
|
3845
|
+
# attr_reader body: Node?
|
3846
|
+
attr_reader :body
|
4624
3847
|
|
4625
3848
|
# attr_reader opening_loc: Location
|
4626
3849
|
attr_reader :opening_loc
|
@@ -4628,9 +3851,9 @@ module YARP
|
|
4628
3851
|
# attr_reader closing_loc: Location
|
4629
3852
|
attr_reader :closing_loc
|
4630
3853
|
|
4631
|
-
# def initialize: (
|
4632
|
-
def initialize(
|
4633
|
-
@
|
3854
|
+
# def initialize: (body: Node?, opening_loc: Location, closing_loc: Location, location: Location) -> void
|
3855
|
+
def initialize(body, opening_loc, closing_loc, location)
|
3856
|
+
@body = body
|
4634
3857
|
@opening_loc = opening_loc
|
4635
3858
|
@closing_loc = closing_loc
|
4636
3859
|
@location = location
|
@@ -4647,7 +3870,7 @@ module YARP
|
|
4647
3870
|
|
4648
3871
|
# def child_nodes: () -> Array[nil | Node]
|
4649
3872
|
def child_nodes
|
4650
|
-
[
|
3873
|
+
[body]
|
4651
3874
|
end
|
4652
3875
|
|
4653
3876
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -4655,7 +3878,7 @@ module YARP
|
|
4655
3878
|
|
4656
3879
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
4657
3880
|
def deconstruct_keys(keys)
|
4658
|
-
{
|
3881
|
+
{ body: body, opening_loc: opening_loc, closing_loc: closing_loc, location: location }
|
4659
3882
|
end
|
4660
3883
|
|
4661
3884
|
# def opening: () -> String
|
@@ -5521,19 +4744,19 @@ module YARP
|
|
5521
4744
|
# attr_reader expression: Node
|
5522
4745
|
attr_reader :expression
|
5523
4746
|
|
5524
|
-
# attr_reader
|
5525
|
-
attr_reader :
|
4747
|
+
# attr_reader body: Node?
|
4748
|
+
attr_reader :body
|
5526
4749
|
|
5527
4750
|
# attr_reader end_keyword_loc: Location
|
5528
4751
|
attr_reader :end_keyword_loc
|
5529
4752
|
|
5530
|
-
# def initialize: (locals: Array[Symbol], class_keyword_loc: Location, operator_loc: Location, expression: Node,
|
5531
|
-
def initialize(locals, class_keyword_loc, operator_loc, expression,
|
4753
|
+
# def initialize: (locals: Array[Symbol], class_keyword_loc: Location, operator_loc: Location, expression: Node, body: Node?, end_keyword_loc: Location, location: Location) -> void
|
4754
|
+
def initialize(locals, class_keyword_loc, operator_loc, expression, body, end_keyword_loc, location)
|
5532
4755
|
@locals = locals
|
5533
4756
|
@class_keyword_loc = class_keyword_loc
|
5534
4757
|
@operator_loc = operator_loc
|
5535
4758
|
@expression = expression
|
5536
|
-
@
|
4759
|
+
@body = body
|
5537
4760
|
@end_keyword_loc = end_keyword_loc
|
5538
4761
|
@location = location
|
5539
4762
|
end
|
@@ -5545,7 +4768,7 @@ module YARP
|
|
5545
4768
|
|
5546
4769
|
# def child_nodes: () -> Array[nil | Node]
|
5547
4770
|
def child_nodes
|
5548
|
-
[expression,
|
4771
|
+
[expression, body]
|
5549
4772
|
end
|
5550
4773
|
|
5551
4774
|
# def deconstruct: () -> Array[nil | Node]
|
@@ -5553,7 +4776,7 @@ module YARP
|
|
5553
4776
|
|
5554
4777
|
# def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location]
|
5555
4778
|
def deconstruct_keys(keys)
|
5556
|
-
{ locals: locals, class_keyword_loc: class_keyword_loc, operator_loc: operator_loc, expression: expression,
|
4779
|
+
{ locals: locals, class_keyword_loc: class_keyword_loc, operator_loc: operator_loc, expression: expression, body: body, end_keyword_loc: end_keyword_loc, location: location }
|
5557
4780
|
end
|
5558
4781
|
|
5559
4782
|
# def class_keyword: () -> String
|
@@ -6171,10 +5394,12 @@ module YARP
|
|
6171
5394
|
end
|
6172
5395
|
end
|
6173
5396
|
|
6174
|
-
# case
|
6175
|
-
#
|
6176
|
-
#
|
6177
|
-
#
|
5397
|
+
# Represents the use of the `when` keyword within a case statement.
|
5398
|
+
#
|
5399
|
+
# case true
|
5400
|
+
# when true
|
5401
|
+
# ^^^^^^^^^
|
5402
|
+
# end
|
6178
5403
|
class WhenNode < Node
|
6179
5404
|
# attr_reader keyword_loc: Location
|
6180
5405
|
attr_reader :keyword_loc
|
@@ -6453,6 +5678,9 @@ module YARP
|
|
6453
5678
|
# Visit a AndNode node
|
6454
5679
|
alias visit_and_node visit_child_nodes
|
6455
5680
|
|
5681
|
+
# Visit a AndWriteNode node
|
5682
|
+
alias visit_and_write_node visit_child_nodes
|
5683
|
+
|
6456
5684
|
# Visit a ArgumentsNode node
|
6457
5685
|
alias visit_arguments_node visit_child_nodes
|
6458
5686
|
|
@@ -6510,42 +5738,15 @@ module YARP
|
|
6510
5738
|
# Visit a ClassNode node
|
6511
5739
|
alias visit_class_node visit_child_nodes
|
6512
5740
|
|
6513
|
-
# Visit a ClassVariableOperatorAndWriteNode node
|
6514
|
-
alias visit_class_variable_operator_and_write_node visit_child_nodes
|
6515
|
-
|
6516
|
-
# Visit a ClassVariableOperatorOrWriteNode node
|
6517
|
-
alias visit_class_variable_operator_or_write_node visit_child_nodes
|
6518
|
-
|
6519
|
-
# Visit a ClassVariableOperatorWriteNode node
|
6520
|
-
alias visit_class_variable_operator_write_node visit_child_nodes
|
6521
|
-
|
6522
5741
|
# Visit a ClassVariableReadNode node
|
6523
5742
|
alias visit_class_variable_read_node visit_child_nodes
|
6524
5743
|
|
6525
5744
|
# Visit a ClassVariableWriteNode node
|
6526
5745
|
alias visit_class_variable_write_node visit_child_nodes
|
6527
5746
|
|
6528
|
-
# Visit a ConstantOperatorAndWriteNode node
|
6529
|
-
alias visit_constant_operator_and_write_node visit_child_nodes
|
6530
|
-
|
6531
|
-
# Visit a ConstantOperatorOrWriteNode node
|
6532
|
-
alias visit_constant_operator_or_write_node visit_child_nodes
|
6533
|
-
|
6534
|
-
# Visit a ConstantOperatorWriteNode node
|
6535
|
-
alias visit_constant_operator_write_node visit_child_nodes
|
6536
|
-
|
6537
5747
|
# Visit a ConstantPathNode node
|
6538
5748
|
alias visit_constant_path_node visit_child_nodes
|
6539
5749
|
|
6540
|
-
# Visit a ConstantPathOperatorAndWriteNode node
|
6541
|
-
alias visit_constant_path_operator_and_write_node visit_child_nodes
|
6542
|
-
|
6543
|
-
# Visit a ConstantPathOperatorOrWriteNode node
|
6544
|
-
alias visit_constant_path_operator_or_write_node visit_child_nodes
|
6545
|
-
|
6546
|
-
# Visit a ConstantPathOperatorWriteNode node
|
6547
|
-
alias visit_constant_path_operator_write_node visit_child_nodes
|
6548
|
-
|
6549
5750
|
# Visit a ConstantPathWriteNode node
|
6550
5751
|
alias visit_constant_path_write_node visit_child_nodes
|
6551
5752
|
|
@@ -6597,15 +5798,6 @@ module YARP
|
|
6597
5798
|
# Visit a ForwardingSuperNode node
|
6598
5799
|
alias visit_forwarding_super_node visit_child_nodes
|
6599
5800
|
|
6600
|
-
# Visit a GlobalVariableOperatorAndWriteNode node
|
6601
|
-
alias visit_global_variable_operator_and_write_node visit_child_nodes
|
6602
|
-
|
6603
|
-
# Visit a GlobalVariableOperatorOrWriteNode node
|
6604
|
-
alias visit_global_variable_operator_or_write_node visit_child_nodes
|
6605
|
-
|
6606
|
-
# Visit a GlobalVariableOperatorWriteNode node
|
6607
|
-
alias visit_global_variable_operator_write_node visit_child_nodes
|
6608
|
-
|
6609
5801
|
# Visit a GlobalVariableReadNode node
|
6610
5802
|
alias visit_global_variable_read_node visit_child_nodes
|
6611
5803
|
|
@@ -6627,15 +5819,6 @@ module YARP
|
|
6627
5819
|
# Visit a InNode node
|
6628
5820
|
alias visit_in_node visit_child_nodes
|
6629
5821
|
|
6630
|
-
# Visit a InstanceVariableOperatorAndWriteNode node
|
6631
|
-
alias visit_instance_variable_operator_and_write_node visit_child_nodes
|
6632
|
-
|
6633
|
-
# Visit a InstanceVariableOperatorOrWriteNode node
|
6634
|
-
alias visit_instance_variable_operator_or_write_node visit_child_nodes
|
6635
|
-
|
6636
|
-
# Visit a InstanceVariableOperatorWriteNode node
|
6637
|
-
alias visit_instance_variable_operator_write_node visit_child_nodes
|
6638
|
-
|
6639
5822
|
# Visit a InstanceVariableReadNode node
|
6640
5823
|
alias visit_instance_variable_read_node visit_child_nodes
|
6641
5824
|
|
@@ -6669,15 +5852,6 @@ module YARP
|
|
6669
5852
|
# Visit a LambdaNode node
|
6670
5853
|
alias visit_lambda_node visit_child_nodes
|
6671
5854
|
|
6672
|
-
# Visit a LocalVariableOperatorAndWriteNode node
|
6673
|
-
alias visit_local_variable_operator_and_write_node visit_child_nodes
|
6674
|
-
|
6675
|
-
# Visit a LocalVariableOperatorOrWriteNode node
|
6676
|
-
alias visit_local_variable_operator_or_write_node visit_child_nodes
|
6677
|
-
|
6678
|
-
# Visit a LocalVariableOperatorWriteNode node
|
6679
|
-
alias visit_local_variable_operator_write_node visit_child_nodes
|
6680
|
-
|
6681
5855
|
# Visit a LocalVariableReadNode node
|
6682
5856
|
alias visit_local_variable_read_node visit_child_nodes
|
6683
5857
|
|
@@ -6711,12 +5885,18 @@ module YARP
|
|
6711
5885
|
# Visit a NumberedReferenceReadNode node
|
6712
5886
|
alias visit_numbered_reference_read_node visit_child_nodes
|
6713
5887
|
|
5888
|
+
# Visit a OperatorWriteNode node
|
5889
|
+
alias visit_operator_write_node visit_child_nodes
|
5890
|
+
|
6714
5891
|
# Visit a OptionalParameterNode node
|
6715
5892
|
alias visit_optional_parameter_node visit_child_nodes
|
6716
5893
|
|
6717
5894
|
# Visit a OrNode node
|
6718
5895
|
alias visit_or_node visit_child_nodes
|
6719
5896
|
|
5897
|
+
# Visit a OrWriteNode node
|
5898
|
+
alias visit_or_write_node visit_child_nodes
|
5899
|
+
|
6720
5900
|
# Visit a ParametersNode node
|
6721
5901
|
alias visit_parameters_node visit_child_nodes
|
6722
5902
|
|
@@ -6852,6 +6032,11 @@ module YARP
|
|
6852
6032
|
AndNode.new(left, right, operator_loc, location)
|
6853
6033
|
end
|
6854
6034
|
|
6035
|
+
# Create a new AndWriteNode node
|
6036
|
+
def AndWriteNode(target, value, operator_loc, location = Location())
|
6037
|
+
AndWriteNode.new(target, value, operator_loc, location)
|
6038
|
+
end
|
6039
|
+
|
6855
6040
|
# Create a new ArgumentsNode node
|
6856
6041
|
def ArgumentsNode(arguments, location = Location())
|
6857
6042
|
ArgumentsNode.new(arguments, location)
|
@@ -6893,8 +6078,8 @@ module YARP
|
|
6893
6078
|
end
|
6894
6079
|
|
6895
6080
|
# Create a new BlockNode node
|
6896
|
-
def BlockNode(locals, parameters,
|
6897
|
-
BlockNode.new(locals, parameters,
|
6081
|
+
def BlockNode(locals, parameters, body, opening_loc, closing_loc, location = Location())
|
6082
|
+
BlockNode.new(locals, parameters, body, opening_loc, closing_loc, location)
|
6898
6083
|
end
|
6899
6084
|
|
6900
6085
|
# Create a new BlockParameterNode node
|
@@ -6943,23 +6128,8 @@ module YARP
|
|
6943
6128
|
end
|
6944
6129
|
|
6945
6130
|
# Create a new ClassNode node
|
6946
|
-
def ClassNode(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass,
|
6947
|
-
ClassNode.new(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass,
|
6948
|
-
end
|
6949
|
-
|
6950
|
-
# Create a new ClassVariableOperatorAndWriteNode node
|
6951
|
-
def ClassVariableOperatorAndWriteNode(name_loc, operator_loc, value, location = Location())
|
6952
|
-
ClassVariableOperatorAndWriteNode.new(name_loc, operator_loc, value, location)
|
6953
|
-
end
|
6954
|
-
|
6955
|
-
# Create a new ClassVariableOperatorOrWriteNode node
|
6956
|
-
def ClassVariableOperatorOrWriteNode(name_loc, operator_loc, value, location = Location())
|
6957
|
-
ClassVariableOperatorOrWriteNode.new(name_loc, operator_loc, value, location)
|
6958
|
-
end
|
6959
|
-
|
6960
|
-
# Create a new ClassVariableOperatorWriteNode node
|
6961
|
-
def ClassVariableOperatorWriteNode(name_loc, operator_loc, value, operator, location = Location())
|
6962
|
-
ClassVariableOperatorWriteNode.new(name_loc, operator_loc, value, operator, location)
|
6131
|
+
def ClassNode(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, location = Location())
|
6132
|
+
ClassNode.new(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, location)
|
6963
6133
|
end
|
6964
6134
|
|
6965
6135
|
# Create a new ClassVariableReadNode node
|
@@ -6972,41 +6142,11 @@ module YARP
|
|
6972
6142
|
ClassVariableWriteNode.new(name_loc, value, operator_loc, location)
|
6973
6143
|
end
|
6974
6144
|
|
6975
|
-
# Create a new ConstantOperatorAndWriteNode node
|
6976
|
-
def ConstantOperatorAndWriteNode(name_loc, operator_loc, value, location = Location())
|
6977
|
-
ConstantOperatorAndWriteNode.new(name_loc, operator_loc, value, location)
|
6978
|
-
end
|
6979
|
-
|
6980
|
-
# Create a new ConstantOperatorOrWriteNode node
|
6981
|
-
def ConstantOperatorOrWriteNode(name_loc, operator_loc, value, location = Location())
|
6982
|
-
ConstantOperatorOrWriteNode.new(name_loc, operator_loc, value, location)
|
6983
|
-
end
|
6984
|
-
|
6985
|
-
# Create a new ConstantOperatorWriteNode node
|
6986
|
-
def ConstantOperatorWriteNode(name_loc, operator_loc, value, operator, location = Location())
|
6987
|
-
ConstantOperatorWriteNode.new(name_loc, operator_loc, value, operator, location)
|
6988
|
-
end
|
6989
|
-
|
6990
6145
|
# Create a new ConstantPathNode node
|
6991
6146
|
def ConstantPathNode(parent, child, delimiter_loc, location = Location())
|
6992
6147
|
ConstantPathNode.new(parent, child, delimiter_loc, location)
|
6993
6148
|
end
|
6994
6149
|
|
6995
|
-
# Create a new ConstantPathOperatorAndWriteNode node
|
6996
|
-
def ConstantPathOperatorAndWriteNode(target, operator_loc, value, location = Location())
|
6997
|
-
ConstantPathOperatorAndWriteNode.new(target, operator_loc, value, location)
|
6998
|
-
end
|
6999
|
-
|
7000
|
-
# Create a new ConstantPathOperatorOrWriteNode node
|
7001
|
-
def ConstantPathOperatorOrWriteNode(target, operator_loc, value, location = Location())
|
7002
|
-
ConstantPathOperatorOrWriteNode.new(target, operator_loc, value, location)
|
7003
|
-
end
|
7004
|
-
|
7005
|
-
# Create a new ConstantPathOperatorWriteNode node
|
7006
|
-
def ConstantPathOperatorWriteNode(target, operator_loc, value, operator, location = Location())
|
7007
|
-
ConstantPathOperatorWriteNode.new(target, operator_loc, value, operator, location)
|
7008
|
-
end
|
7009
|
-
|
7010
6150
|
# Create a new ConstantPathWriteNode node
|
7011
6151
|
def ConstantPathWriteNode(target, operator_loc, value, location = Location())
|
7012
6152
|
ConstantPathWriteNode.new(target, operator_loc, value, location)
|
@@ -7023,8 +6163,8 @@ module YARP
|
|
7023
6163
|
end
|
7024
6164
|
|
7025
6165
|
# Create a new DefNode node
|
7026
|
-
def DefNode(name_loc, receiver, parameters,
|
7027
|
-
DefNode.new(name_loc, receiver, parameters,
|
6166
|
+
def DefNode(name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location = Location())
|
6167
|
+
DefNode.new(name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location)
|
7028
6168
|
end
|
7029
6169
|
|
7030
6170
|
# Create a new DefinedNode node
|
@@ -7092,21 +6232,6 @@ module YARP
|
|
7092
6232
|
ForwardingSuperNode.new(block, location)
|
7093
6233
|
end
|
7094
6234
|
|
7095
|
-
# Create a new GlobalVariableOperatorAndWriteNode node
|
7096
|
-
def GlobalVariableOperatorAndWriteNode(name_loc, operator_loc, value, location = Location())
|
7097
|
-
GlobalVariableOperatorAndWriteNode.new(name_loc, operator_loc, value, location)
|
7098
|
-
end
|
7099
|
-
|
7100
|
-
# Create a new GlobalVariableOperatorOrWriteNode node
|
7101
|
-
def GlobalVariableOperatorOrWriteNode(name_loc, operator_loc, value, location = Location())
|
7102
|
-
GlobalVariableOperatorOrWriteNode.new(name_loc, operator_loc, value, location)
|
7103
|
-
end
|
7104
|
-
|
7105
|
-
# Create a new GlobalVariableOperatorWriteNode node
|
7106
|
-
def GlobalVariableOperatorWriteNode(name_loc, operator_loc, value, operator, location = Location())
|
7107
|
-
GlobalVariableOperatorWriteNode.new(name_loc, operator_loc, value, operator, location)
|
7108
|
-
end
|
7109
|
-
|
7110
6235
|
# Create a new GlobalVariableReadNode node
|
7111
6236
|
def GlobalVariableReadNode(location = Location())
|
7112
6237
|
GlobalVariableReadNode.new(location)
|
@@ -7142,21 +6267,6 @@ module YARP
|
|
7142
6267
|
InNode.new(pattern, statements, in_loc, then_loc, location)
|
7143
6268
|
end
|
7144
6269
|
|
7145
|
-
# Create a new InstanceVariableOperatorAndWriteNode node
|
7146
|
-
def InstanceVariableOperatorAndWriteNode(name_loc, operator_loc, value, location = Location())
|
7147
|
-
InstanceVariableOperatorAndWriteNode.new(name_loc, operator_loc, value, location)
|
7148
|
-
end
|
7149
|
-
|
7150
|
-
# Create a new InstanceVariableOperatorOrWriteNode node
|
7151
|
-
def InstanceVariableOperatorOrWriteNode(name_loc, operator_loc, value, location = Location())
|
7152
|
-
InstanceVariableOperatorOrWriteNode.new(name_loc, operator_loc, value, location)
|
7153
|
-
end
|
7154
|
-
|
7155
|
-
# Create a new InstanceVariableOperatorWriteNode node
|
7156
|
-
def InstanceVariableOperatorWriteNode(name_loc, operator_loc, value, operator, location = Location())
|
7157
|
-
InstanceVariableOperatorWriteNode.new(name_loc, operator_loc, value, operator, location)
|
7158
|
-
end
|
7159
|
-
|
7160
6270
|
# Create a new InstanceVariableReadNode node
|
7161
6271
|
def InstanceVariableReadNode(location = Location())
|
7162
6272
|
InstanceVariableReadNode.new(location)
|
@@ -7208,23 +6318,8 @@ module YARP
|
|
7208
6318
|
end
|
7209
6319
|
|
7210
6320
|
# Create a new LambdaNode node
|
7211
|
-
def LambdaNode(locals, opening_loc, parameters,
|
7212
|
-
LambdaNode.new(locals, opening_loc, parameters,
|
7213
|
-
end
|
7214
|
-
|
7215
|
-
# Create a new LocalVariableOperatorAndWriteNode node
|
7216
|
-
def LocalVariableOperatorAndWriteNode(name_loc, operator_loc, value, constant_id, location = Location())
|
7217
|
-
LocalVariableOperatorAndWriteNode.new(name_loc, operator_loc, value, constant_id, location)
|
7218
|
-
end
|
7219
|
-
|
7220
|
-
# Create a new LocalVariableOperatorOrWriteNode node
|
7221
|
-
def LocalVariableOperatorOrWriteNode(name_loc, operator_loc, value, constant_id, location = Location())
|
7222
|
-
LocalVariableOperatorOrWriteNode.new(name_loc, operator_loc, value, constant_id, location)
|
7223
|
-
end
|
7224
|
-
|
7225
|
-
# Create a new LocalVariableOperatorWriteNode node
|
7226
|
-
def LocalVariableOperatorWriteNode(name_loc, operator_loc, value, constant_id, operator_id, location = Location())
|
7227
|
-
LocalVariableOperatorWriteNode.new(name_loc, operator_loc, value, constant_id, operator_id, location)
|
6321
|
+
def LambdaNode(locals, opening_loc, parameters, body, location = Location())
|
6322
|
+
LambdaNode.new(locals, opening_loc, parameters, body, location)
|
7228
6323
|
end
|
7229
6324
|
|
7230
6325
|
# Create a new LocalVariableReadNode node
|
@@ -7253,8 +6348,8 @@ module YARP
|
|
7253
6348
|
end
|
7254
6349
|
|
7255
6350
|
# Create a new ModuleNode node
|
7256
|
-
def ModuleNode(locals, module_keyword_loc, constant_path,
|
7257
|
-
ModuleNode.new(locals, module_keyword_loc, constant_path,
|
6351
|
+
def ModuleNode(locals, module_keyword_loc, constant_path, body, end_keyword_loc, location = Location())
|
6352
|
+
ModuleNode.new(locals, module_keyword_loc, constant_path, body, end_keyword_loc, location)
|
7258
6353
|
end
|
7259
6354
|
|
7260
6355
|
# Create a new MultiWriteNode node
|
@@ -7282,6 +6377,11 @@ module YARP
|
|
7282
6377
|
NumberedReferenceReadNode.new(location)
|
7283
6378
|
end
|
7284
6379
|
|
6380
|
+
# Create a new OperatorWriteNode node
|
6381
|
+
def OperatorWriteNode(target, operator_loc, operator, value, location = Location())
|
6382
|
+
OperatorWriteNode.new(target, operator_loc, operator, value, location)
|
6383
|
+
end
|
6384
|
+
|
7285
6385
|
# Create a new OptionalParameterNode node
|
7286
6386
|
def OptionalParameterNode(constant_id, name_loc, operator_loc, value, location = Location())
|
7287
6387
|
OptionalParameterNode.new(constant_id, name_loc, operator_loc, value, location)
|
@@ -7292,14 +6392,19 @@ module YARP
|
|
7292
6392
|
OrNode.new(left, right, operator_loc, location)
|
7293
6393
|
end
|
7294
6394
|
|
6395
|
+
# Create a new OrWriteNode node
|
6396
|
+
def OrWriteNode(target, value, operator_loc, location = Location())
|
6397
|
+
OrWriteNode.new(target, value, operator_loc, location)
|
6398
|
+
end
|
6399
|
+
|
7295
6400
|
# Create a new ParametersNode node
|
7296
6401
|
def ParametersNode(requireds, optionals, posts, rest, keywords, keyword_rest, block, location = Location())
|
7297
6402
|
ParametersNode.new(requireds, optionals, posts, rest, keywords, keyword_rest, block, location)
|
7298
6403
|
end
|
7299
6404
|
|
7300
6405
|
# Create a new ParenthesesNode node
|
7301
|
-
def ParenthesesNode(
|
7302
|
-
ParenthesesNode.new(
|
6406
|
+
def ParenthesesNode(body, opening_loc, closing_loc, location = Location())
|
6407
|
+
ParenthesesNode.new(body, opening_loc, closing_loc, location)
|
7303
6408
|
end
|
7304
6409
|
|
7305
6410
|
# Create a new PinnedExpressionNode node
|
@@ -7388,8 +6493,8 @@ module YARP
|
|
7388
6493
|
end
|
7389
6494
|
|
7390
6495
|
# Create a new SingletonClassNode node
|
7391
|
-
def SingletonClassNode(locals, class_keyword_loc, operator_loc, expression,
|
7392
|
-
SingletonClassNode.new(locals, class_keyword_loc, operator_loc, expression,
|
6496
|
+
def SingletonClassNode(locals, class_keyword_loc, operator_loc, expression, body, end_keyword_loc, location = Location())
|
6497
|
+
SingletonClassNode.new(locals, class_keyword_loc, operator_loc, expression, body, end_keyword_loc, location)
|
7393
6498
|
end
|
7394
6499
|
|
7395
6500
|
# Create a new SourceEncodingNode node
|