prism 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -1
- data/Makefile +5 -0
- data/README.md +8 -6
- data/config.yml +236 -38
- data/docs/build_system.md +19 -2
- data/docs/cruby_compilation.md +27 -0
- data/docs/parser_translation.md +34 -0
- data/docs/parsing_rules.md +19 -0
- data/docs/releasing.md +3 -3
- data/docs/ruby_api.md +1 -1
- data/docs/serialization.md +17 -5
- data/ext/prism/api_node.c +101 -81
- data/ext/prism/extension.c +74 -11
- data/ext/prism/extension.h +1 -1
- data/include/prism/ast.h +1699 -504
- data/include/prism/defines.h +8 -0
- data/include/prism/diagnostic.h +39 -2
- data/include/prism/encoding.h +10 -0
- data/include/prism/options.h +40 -14
- data/include/prism/parser.h +33 -17
- data/include/prism/util/pm_buffer.h +9 -0
- data/include/prism/util/pm_constant_pool.h +7 -0
- data/include/prism/util/pm_newline_list.h +0 -11
- data/include/prism/version.h +2 -2
- data/include/prism.h +19 -2
- data/lib/prism/debug.rb +11 -5
- data/lib/prism/dot_visitor.rb +36 -14
- data/lib/prism/dsl.rb +22 -22
- data/lib/prism/ffi.rb +2 -2
- data/lib/prism/node.rb +1020 -737
- data/lib/prism/node_ext.rb +2 -2
- data/lib/prism/parse_result.rb +17 -9
- data/lib/prism/serialize.rb +53 -29
- data/lib/prism/translation/parser/compiler.rb +1831 -0
- data/lib/prism/translation/parser/lexer.rb +335 -0
- data/lib/prism/translation/parser/rubocop.rb +37 -0
- data/lib/prism/translation/parser.rb +163 -0
- data/lib/prism/translation.rb +11 -0
- data/lib/prism.rb +1 -0
- data/prism.gemspec +12 -5
- data/rbi/prism.rbi +150 -88
- data/rbi/prism_static.rbi +15 -3
- data/sig/prism.rbs +996 -961
- data/sig/prism_static.rbs +123 -46
- data/src/diagnostic.c +259 -219
- data/src/encoding.c +4 -8
- data/src/node.c +2 -6
- data/src/options.c +24 -5
- data/src/prettyprint.c +174 -42
- data/src/prism.c +1136 -328
- data/src/serialize.c +12 -9
- data/src/token_type.c +353 -4
- data/src/util/pm_buffer.c +11 -0
- data/src/util/pm_constant_pool.c +12 -11
- data/src/util/pm_newline_list.c +2 -14
- metadata +10 -3
- data/docs/building.md +0 -29
data/include/prism/ast.h
CHANGED
@@ -1089,13 +1089,19 @@ typedef struct pm_alias_global_variable_node {
|
|
1089
1089
|
/** The embedded base node. */
|
1090
1090
|
pm_node_t base;
|
1091
1091
|
|
1092
|
-
/**
|
1092
|
+
/**
|
1093
|
+
* AliasGlobalVariableNode#new_name
|
1094
|
+
*/
|
1093
1095
|
struct pm_node *new_name;
|
1094
1096
|
|
1095
|
-
/**
|
1097
|
+
/**
|
1098
|
+
* AliasGlobalVariableNode#old_name
|
1099
|
+
*/
|
1096
1100
|
struct pm_node *old_name;
|
1097
1101
|
|
1098
|
-
/**
|
1102
|
+
/**
|
1103
|
+
* AliasGlobalVariableNode#keyword_loc
|
1104
|
+
*/
|
1099
1105
|
pm_location_t keyword_loc;
|
1100
1106
|
} pm_alias_global_variable_node_t;
|
1101
1107
|
|
@@ -1110,13 +1116,19 @@ typedef struct pm_alias_method_node {
|
|
1110
1116
|
/** The embedded base node. */
|
1111
1117
|
pm_node_t base;
|
1112
1118
|
|
1113
|
-
/**
|
1119
|
+
/**
|
1120
|
+
* AliasMethodNode#new_name
|
1121
|
+
*/
|
1114
1122
|
struct pm_node *new_name;
|
1115
1123
|
|
1116
|
-
/**
|
1124
|
+
/**
|
1125
|
+
* AliasMethodNode#old_name
|
1126
|
+
*/
|
1117
1127
|
struct pm_node *old_name;
|
1118
1128
|
|
1119
|
-
/**
|
1129
|
+
/**
|
1130
|
+
* AliasMethodNode#keyword_loc
|
1131
|
+
*/
|
1120
1132
|
pm_location_t keyword_loc;
|
1121
1133
|
} pm_alias_method_node_t;
|
1122
1134
|
|
@@ -1131,13 +1143,19 @@ typedef struct pm_alternation_pattern_node {
|
|
1131
1143
|
/** The embedded base node. */
|
1132
1144
|
pm_node_t base;
|
1133
1145
|
|
1134
|
-
/**
|
1146
|
+
/**
|
1147
|
+
* AlternationPatternNode#left
|
1148
|
+
*/
|
1135
1149
|
struct pm_node *left;
|
1136
1150
|
|
1137
|
-
/**
|
1151
|
+
/**
|
1152
|
+
* AlternationPatternNode#right
|
1153
|
+
*/
|
1138
1154
|
struct pm_node *right;
|
1139
1155
|
|
1140
|
-
/**
|
1156
|
+
/**
|
1157
|
+
* AlternationPatternNode#operator_loc
|
1158
|
+
*/
|
1141
1159
|
pm_location_t operator_loc;
|
1142
1160
|
} pm_alternation_pattern_node_t;
|
1143
1161
|
|
@@ -1152,13 +1170,40 @@ typedef struct pm_and_node {
|
|
1152
1170
|
/** The embedded base node. */
|
1153
1171
|
pm_node_t base;
|
1154
1172
|
|
1155
|
-
/**
|
1173
|
+
/**
|
1174
|
+
* AndNode#left
|
1175
|
+
*
|
1176
|
+
* Represents the left side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
1177
|
+
*
|
1178
|
+
* left and right
|
1179
|
+
* ^^^^
|
1180
|
+
*
|
1181
|
+
* 1 && 2
|
1182
|
+
* ^
|
1183
|
+
*/
|
1156
1184
|
struct pm_node *left;
|
1157
1185
|
|
1158
|
-
/**
|
1186
|
+
/**
|
1187
|
+
* AndNode#right
|
1188
|
+
*
|
1189
|
+
* Represents the right side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
1190
|
+
*
|
1191
|
+
* left && right
|
1192
|
+
* ^^^^^
|
1193
|
+
*
|
1194
|
+
* 1 and 2
|
1195
|
+
* ^
|
1196
|
+
*/
|
1159
1197
|
struct pm_node *right;
|
1160
1198
|
|
1161
|
-
/**
|
1199
|
+
/**
|
1200
|
+
* AndNode#operator_loc
|
1201
|
+
*
|
1202
|
+
* The location of the `and` keyword or the `&&` operator.
|
1203
|
+
*
|
1204
|
+
* left and right
|
1205
|
+
* ^^^
|
1206
|
+
*/
|
1162
1207
|
pm_location_t operator_loc;
|
1163
1208
|
} pm_and_node_t;
|
1164
1209
|
|
@@ -1175,7 +1220,9 @@ typedef struct pm_arguments_node {
|
|
1175
1220
|
/** The embedded base node. */
|
1176
1221
|
pm_node_t base;
|
1177
1222
|
|
1178
|
-
/**
|
1223
|
+
/**
|
1224
|
+
* ArgumentsNode#arguments
|
1225
|
+
*/
|
1179
1226
|
struct pm_node_list arguments;
|
1180
1227
|
} pm_arguments_node_t;
|
1181
1228
|
|
@@ -1192,13 +1239,19 @@ typedef struct pm_array_node {
|
|
1192
1239
|
/** The embedded base node. */
|
1193
1240
|
pm_node_t base;
|
1194
1241
|
|
1195
|
-
/**
|
1242
|
+
/**
|
1243
|
+
* ArrayNode#elements
|
1244
|
+
*/
|
1196
1245
|
struct pm_node_list elements;
|
1197
1246
|
|
1198
|
-
/**
|
1247
|
+
/**
|
1248
|
+
* ArrayNode#opening_loc
|
1249
|
+
*/
|
1199
1250
|
pm_location_t opening_loc;
|
1200
1251
|
|
1201
|
-
/**
|
1252
|
+
/**
|
1253
|
+
* ArrayNode#closing_loc
|
1254
|
+
*/
|
1202
1255
|
pm_location_t closing_loc;
|
1203
1256
|
} pm_array_node_t;
|
1204
1257
|
|
@@ -1213,22 +1266,34 @@ typedef struct pm_array_pattern_node {
|
|
1213
1266
|
/** The embedded base node. */
|
1214
1267
|
pm_node_t base;
|
1215
1268
|
|
1216
|
-
/**
|
1269
|
+
/**
|
1270
|
+
* ArrayPatternNode#constant
|
1271
|
+
*/
|
1217
1272
|
struct pm_node *constant;
|
1218
1273
|
|
1219
|
-
/**
|
1274
|
+
/**
|
1275
|
+
* ArrayPatternNode#requireds
|
1276
|
+
*/
|
1220
1277
|
struct pm_node_list requireds;
|
1221
1278
|
|
1222
|
-
/**
|
1279
|
+
/**
|
1280
|
+
* ArrayPatternNode#rest
|
1281
|
+
*/
|
1223
1282
|
struct pm_node *rest;
|
1224
1283
|
|
1225
|
-
/**
|
1284
|
+
/**
|
1285
|
+
* ArrayPatternNode#posts
|
1286
|
+
*/
|
1226
1287
|
struct pm_node_list posts;
|
1227
1288
|
|
1228
|
-
/**
|
1289
|
+
/**
|
1290
|
+
* ArrayPatternNode#opening_loc
|
1291
|
+
*/
|
1229
1292
|
pm_location_t opening_loc;
|
1230
1293
|
|
1231
|
-
/**
|
1294
|
+
/**
|
1295
|
+
* ArrayPatternNode#closing_loc
|
1296
|
+
*/
|
1232
1297
|
pm_location_t closing_loc;
|
1233
1298
|
} pm_array_pattern_node_t;
|
1234
1299
|
|
@@ -1243,13 +1308,43 @@ typedef struct pm_assoc_node {
|
|
1243
1308
|
/** The embedded base node. */
|
1244
1309
|
pm_node_t base;
|
1245
1310
|
|
1246
|
-
/**
|
1311
|
+
/**
|
1312
|
+
* AssocNode#key
|
1313
|
+
*
|
1314
|
+
* The key of the association. This can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
1315
|
+
*
|
1316
|
+
* { a: b }
|
1317
|
+
* ^
|
1318
|
+
*
|
1319
|
+
* { foo => bar }
|
1320
|
+
* ^^^
|
1321
|
+
*
|
1322
|
+
* { def a; end => 1 }
|
1323
|
+
* ^^^^^^^^^^
|
1324
|
+
*/
|
1247
1325
|
struct pm_node *key;
|
1248
1326
|
|
1249
|
-
/**
|
1327
|
+
/**
|
1328
|
+
* AssocNode#value
|
1329
|
+
*
|
1330
|
+
* The value of the association, if present. This can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
1331
|
+
*
|
1332
|
+
* { foo => bar }
|
1333
|
+
* ^^^
|
1334
|
+
*
|
1335
|
+
* { x: 1 }
|
1336
|
+
* ^
|
1337
|
+
*/
|
1250
1338
|
struct pm_node *value;
|
1251
1339
|
|
1252
|
-
/**
|
1340
|
+
/**
|
1341
|
+
* AssocNode#operator_loc
|
1342
|
+
*
|
1343
|
+
* The location of the `=>` operator, if present.
|
1344
|
+
*
|
1345
|
+
* { foo => bar }
|
1346
|
+
* ^^
|
1347
|
+
*/
|
1253
1348
|
pm_location_t operator_loc;
|
1254
1349
|
} pm_assoc_node_t;
|
1255
1350
|
|
@@ -1264,10 +1359,24 @@ typedef struct pm_assoc_splat_node {
|
|
1264
1359
|
/** The embedded base node. */
|
1265
1360
|
pm_node_t base;
|
1266
1361
|
|
1267
|
-
/**
|
1362
|
+
/**
|
1363
|
+
* AssocSplatNode#value
|
1364
|
+
*
|
1365
|
+
* The value to be splatted, if present. Will be missing when keyword rest argument forwarding is used.
|
1366
|
+
*
|
1367
|
+
* { **foo }
|
1368
|
+
* ^^^
|
1369
|
+
*/
|
1268
1370
|
struct pm_node *value;
|
1269
1371
|
|
1270
|
-
/**
|
1372
|
+
/**
|
1373
|
+
* AssocSplatNode#operator_loc
|
1374
|
+
*
|
1375
|
+
* The location of the `**` operator.
|
1376
|
+
*
|
1377
|
+
* { **x }
|
1378
|
+
* ^^
|
1379
|
+
*/
|
1271
1380
|
pm_location_t operator_loc;
|
1272
1381
|
} pm_assoc_splat_node_t;
|
1273
1382
|
|
@@ -1282,7 +1391,15 @@ typedef struct pm_back_reference_read_node {
|
|
1282
1391
|
/** The embedded base node. */
|
1283
1392
|
pm_node_t base;
|
1284
1393
|
|
1285
|
-
/**
|
1394
|
+
/**
|
1395
|
+
* BackReferenceReadNode#name
|
1396
|
+
*
|
1397
|
+
* The name of the back-reference variable, including the leading `$`.
|
1398
|
+
*
|
1399
|
+
* $& # name `:$&`
|
1400
|
+
*
|
1401
|
+
* $+ # name `:$+`
|
1402
|
+
*/
|
1286
1403
|
pm_constant_id_t name;
|
1287
1404
|
} pm_back_reference_read_node_t;
|
1288
1405
|
|
@@ -1297,22 +1414,34 @@ typedef struct pm_begin_node {
|
|
1297
1414
|
/** The embedded base node. */
|
1298
1415
|
pm_node_t base;
|
1299
1416
|
|
1300
|
-
/**
|
1417
|
+
/**
|
1418
|
+
* BeginNode#begin_keyword_loc
|
1419
|
+
*/
|
1301
1420
|
pm_location_t begin_keyword_loc;
|
1302
1421
|
|
1303
|
-
/**
|
1422
|
+
/**
|
1423
|
+
* BeginNode#statements
|
1424
|
+
*/
|
1304
1425
|
struct pm_statements_node *statements;
|
1305
1426
|
|
1306
|
-
/**
|
1427
|
+
/**
|
1428
|
+
* BeginNode#rescue_clause
|
1429
|
+
*/
|
1307
1430
|
struct pm_rescue_node *rescue_clause;
|
1308
1431
|
|
1309
|
-
/**
|
1432
|
+
/**
|
1433
|
+
* BeginNode#else_clause
|
1434
|
+
*/
|
1310
1435
|
struct pm_else_node *else_clause;
|
1311
1436
|
|
1312
|
-
/**
|
1437
|
+
/**
|
1438
|
+
* BeginNode#ensure_clause
|
1439
|
+
*/
|
1313
1440
|
struct pm_ensure_node *ensure_clause;
|
1314
1441
|
|
1315
|
-
/**
|
1442
|
+
/**
|
1443
|
+
* BeginNode#end_keyword_loc
|
1444
|
+
*/
|
1316
1445
|
pm_location_t end_keyword_loc;
|
1317
1446
|
} pm_begin_node_t;
|
1318
1447
|
|
@@ -1327,10 +1456,14 @@ typedef struct pm_block_argument_node {
|
|
1327
1456
|
/** The embedded base node. */
|
1328
1457
|
pm_node_t base;
|
1329
1458
|
|
1330
|
-
/**
|
1459
|
+
/**
|
1460
|
+
* BlockArgumentNode#expression
|
1461
|
+
*/
|
1331
1462
|
struct pm_node *expression;
|
1332
1463
|
|
1333
|
-
/**
|
1464
|
+
/**
|
1465
|
+
* BlockArgumentNode#operator_loc
|
1466
|
+
*/
|
1334
1467
|
pm_location_t operator_loc;
|
1335
1468
|
} pm_block_argument_node_t;
|
1336
1469
|
|
@@ -1338,6 +1471,8 @@ typedef struct pm_block_argument_node {
|
|
1338
1471
|
* BlockLocalVariableNode
|
1339
1472
|
*
|
1340
1473
|
* Type: PM_BLOCK_LOCAL_VARIABLE_NODE
|
1474
|
+
* Flags:
|
1475
|
+
* PM_PARAMETER_FLAGS_REPEATED_PARAMETER
|
1341
1476
|
*
|
1342
1477
|
* @extends pm_node_t
|
1343
1478
|
*/
|
@@ -1345,7 +1480,9 @@ typedef struct pm_block_local_variable_node {
|
|
1345
1480
|
/** The embedded base node. */
|
1346
1481
|
pm_node_t base;
|
1347
1482
|
|
1348
|
-
/**
|
1483
|
+
/**
|
1484
|
+
* BlockLocalVariableNode#name
|
1485
|
+
*/
|
1349
1486
|
pm_constant_id_t name;
|
1350
1487
|
} pm_block_local_variable_node_t;
|
1351
1488
|
|
@@ -1360,22 +1497,29 @@ typedef struct pm_block_node {
|
|
1360
1497
|
/** The embedded base node. */
|
1361
1498
|
pm_node_t base;
|
1362
1499
|
|
1363
|
-
/**
|
1500
|
+
/**
|
1501
|
+
* BlockNode#locals
|
1502
|
+
*/
|
1364
1503
|
pm_constant_id_list_t locals;
|
1365
1504
|
|
1366
|
-
/**
|
1367
|
-
|
1368
|
-
|
1369
|
-
/** BlockNode#parameters */
|
1505
|
+
/**
|
1506
|
+
* BlockNode#parameters
|
1507
|
+
*/
|
1370
1508
|
struct pm_node *parameters;
|
1371
1509
|
|
1372
|
-
/**
|
1510
|
+
/**
|
1511
|
+
* BlockNode#body
|
1512
|
+
*/
|
1373
1513
|
struct pm_node *body;
|
1374
1514
|
|
1375
|
-
/**
|
1515
|
+
/**
|
1516
|
+
* BlockNode#opening_loc
|
1517
|
+
*/
|
1376
1518
|
pm_location_t opening_loc;
|
1377
1519
|
|
1378
|
-
/**
|
1520
|
+
/**
|
1521
|
+
* BlockNode#closing_loc
|
1522
|
+
*/
|
1379
1523
|
pm_location_t closing_loc;
|
1380
1524
|
} pm_block_node_t;
|
1381
1525
|
|
@@ -1383,6 +1527,8 @@ typedef struct pm_block_node {
|
|
1383
1527
|
* BlockParameterNode
|
1384
1528
|
*
|
1385
1529
|
* Type: PM_BLOCK_PARAMETER_NODE
|
1530
|
+
* Flags:
|
1531
|
+
* PM_PARAMETER_FLAGS_REPEATED_PARAMETER
|
1386
1532
|
*
|
1387
1533
|
* @extends pm_node_t
|
1388
1534
|
*/
|
@@ -1390,13 +1536,19 @@ typedef struct pm_block_parameter_node {
|
|
1390
1536
|
/** The embedded base node. */
|
1391
1537
|
pm_node_t base;
|
1392
1538
|
|
1393
|
-
/**
|
1539
|
+
/**
|
1540
|
+
* BlockParameterNode#name
|
1541
|
+
*/
|
1394
1542
|
pm_constant_id_t name;
|
1395
1543
|
|
1396
|
-
/**
|
1544
|
+
/**
|
1545
|
+
* BlockParameterNode#name_loc
|
1546
|
+
*/
|
1397
1547
|
pm_location_t name_loc;
|
1398
1548
|
|
1399
|
-
/**
|
1549
|
+
/**
|
1550
|
+
* BlockParameterNode#operator_loc
|
1551
|
+
*/
|
1400
1552
|
pm_location_t operator_loc;
|
1401
1553
|
} pm_block_parameter_node_t;
|
1402
1554
|
|
@@ -1411,16 +1563,24 @@ typedef struct pm_block_parameters_node {
|
|
1411
1563
|
/** The embedded base node. */
|
1412
1564
|
pm_node_t base;
|
1413
1565
|
|
1414
|
-
/**
|
1566
|
+
/**
|
1567
|
+
* BlockParametersNode#parameters
|
1568
|
+
*/
|
1415
1569
|
struct pm_parameters_node *parameters;
|
1416
1570
|
|
1417
|
-
/**
|
1571
|
+
/**
|
1572
|
+
* BlockParametersNode#locals
|
1573
|
+
*/
|
1418
1574
|
struct pm_node_list locals;
|
1419
1575
|
|
1420
|
-
/**
|
1576
|
+
/**
|
1577
|
+
* BlockParametersNode#opening_loc
|
1578
|
+
*/
|
1421
1579
|
pm_location_t opening_loc;
|
1422
1580
|
|
1423
|
-
/**
|
1581
|
+
/**
|
1582
|
+
* BlockParametersNode#closing_loc
|
1583
|
+
*/
|
1424
1584
|
pm_location_t closing_loc;
|
1425
1585
|
} pm_block_parameters_node_t;
|
1426
1586
|
|
@@ -1435,10 +1595,14 @@ typedef struct pm_break_node {
|
|
1435
1595
|
/** The embedded base node. */
|
1436
1596
|
pm_node_t base;
|
1437
1597
|
|
1438
|
-
/**
|
1598
|
+
/**
|
1599
|
+
* BreakNode#arguments
|
1600
|
+
*/
|
1439
1601
|
struct pm_arguments_node *arguments;
|
1440
1602
|
|
1441
|
-
/**
|
1603
|
+
/**
|
1604
|
+
* BreakNode#keyword_loc
|
1605
|
+
*/
|
1442
1606
|
pm_location_t keyword_loc;
|
1443
1607
|
} pm_break_node_t;
|
1444
1608
|
|
@@ -1450,6 +1614,7 @@ typedef struct pm_break_node {
|
|
1450
1614
|
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1451
1615
|
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1452
1616
|
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1617
|
+
* PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
|
1453
1618
|
*
|
1454
1619
|
* @extends pm_node_t
|
1455
1620
|
*/
|
@@ -1457,25 +1622,39 @@ typedef struct pm_call_and_write_node {
|
|
1457
1622
|
/** The embedded base node. */
|
1458
1623
|
pm_node_t base;
|
1459
1624
|
|
1460
|
-
/**
|
1625
|
+
/**
|
1626
|
+
* CallAndWriteNode#receiver
|
1627
|
+
*/
|
1461
1628
|
struct pm_node *receiver;
|
1462
1629
|
|
1463
|
-
/**
|
1630
|
+
/**
|
1631
|
+
* CallAndWriteNode#call_operator_loc
|
1632
|
+
*/
|
1464
1633
|
pm_location_t call_operator_loc;
|
1465
1634
|
|
1466
|
-
/**
|
1635
|
+
/**
|
1636
|
+
* CallAndWriteNode#message_loc
|
1637
|
+
*/
|
1467
1638
|
pm_location_t message_loc;
|
1468
1639
|
|
1469
|
-
/**
|
1640
|
+
/**
|
1641
|
+
* CallAndWriteNode#read_name
|
1642
|
+
*/
|
1470
1643
|
pm_constant_id_t read_name;
|
1471
1644
|
|
1472
|
-
/**
|
1645
|
+
/**
|
1646
|
+
* CallAndWriteNode#write_name
|
1647
|
+
*/
|
1473
1648
|
pm_constant_id_t write_name;
|
1474
1649
|
|
1475
|
-
/**
|
1650
|
+
/**
|
1651
|
+
* CallAndWriteNode#operator_loc
|
1652
|
+
*/
|
1476
1653
|
pm_location_t operator_loc;
|
1477
1654
|
|
1478
|
-
/**
|
1655
|
+
/**
|
1656
|
+
* CallAndWriteNode#value
|
1657
|
+
*/
|
1479
1658
|
struct pm_node *value;
|
1480
1659
|
} pm_call_and_write_node_t;
|
1481
1660
|
|
@@ -1487,6 +1666,7 @@ typedef struct pm_call_and_write_node {
|
|
1487
1666
|
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1488
1667
|
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1489
1668
|
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1669
|
+
* PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
|
1490
1670
|
*
|
1491
1671
|
* @extends pm_node_t
|
1492
1672
|
*/
|
@@ -1494,28 +1674,55 @@ typedef struct pm_call_node {
|
|
1494
1674
|
/** The embedded base node. */
|
1495
1675
|
pm_node_t base;
|
1496
1676
|
|
1497
|
-
/**
|
1677
|
+
/**
|
1678
|
+
* CallNode#receiver
|
1679
|
+
*
|
1680
|
+
* The object that the method is being called on. This can be either `nil` or any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
1681
|
+
*
|
1682
|
+
* foo.bar
|
1683
|
+
* ^^^
|
1684
|
+
*
|
1685
|
+
* +foo
|
1686
|
+
* ^^^
|
1687
|
+
*
|
1688
|
+
* foo + bar
|
1689
|
+
* ^^^
|
1690
|
+
*/
|
1498
1691
|
struct pm_node *receiver;
|
1499
1692
|
|
1500
|
-
/**
|
1693
|
+
/**
|
1694
|
+
* CallNode#call_operator_loc
|
1695
|
+
*/
|
1501
1696
|
pm_location_t call_operator_loc;
|
1502
1697
|
|
1503
|
-
/**
|
1698
|
+
/**
|
1699
|
+
* CallNode#name
|
1700
|
+
*/
|
1504
1701
|
pm_constant_id_t name;
|
1505
1702
|
|
1506
|
-
/**
|
1703
|
+
/**
|
1704
|
+
* CallNode#message_loc
|
1705
|
+
*/
|
1507
1706
|
pm_location_t message_loc;
|
1508
1707
|
|
1509
|
-
/**
|
1708
|
+
/**
|
1709
|
+
* CallNode#opening_loc
|
1710
|
+
*/
|
1510
1711
|
pm_location_t opening_loc;
|
1511
1712
|
|
1512
|
-
/**
|
1713
|
+
/**
|
1714
|
+
* CallNode#arguments
|
1715
|
+
*/
|
1513
1716
|
struct pm_arguments_node *arguments;
|
1514
1717
|
|
1515
|
-
/**
|
1718
|
+
/**
|
1719
|
+
* CallNode#closing_loc
|
1720
|
+
*/
|
1516
1721
|
pm_location_t closing_loc;
|
1517
1722
|
|
1518
|
-
/**
|
1723
|
+
/**
|
1724
|
+
* CallNode#block
|
1725
|
+
*/
|
1519
1726
|
struct pm_node *block;
|
1520
1727
|
} pm_call_node_t;
|
1521
1728
|
|
@@ -1527,6 +1734,7 @@ typedef struct pm_call_node {
|
|
1527
1734
|
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1528
1735
|
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1529
1736
|
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1737
|
+
* PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
|
1530
1738
|
*
|
1531
1739
|
* @extends pm_node_t
|
1532
1740
|
*/
|
@@ -1534,28 +1742,44 @@ typedef struct pm_call_operator_write_node {
|
|
1534
1742
|
/** The embedded base node. */
|
1535
1743
|
pm_node_t base;
|
1536
1744
|
|
1537
|
-
/**
|
1745
|
+
/**
|
1746
|
+
* CallOperatorWriteNode#receiver
|
1747
|
+
*/
|
1538
1748
|
struct pm_node *receiver;
|
1539
1749
|
|
1540
|
-
/**
|
1750
|
+
/**
|
1751
|
+
* CallOperatorWriteNode#call_operator_loc
|
1752
|
+
*/
|
1541
1753
|
pm_location_t call_operator_loc;
|
1542
1754
|
|
1543
|
-
/**
|
1755
|
+
/**
|
1756
|
+
* CallOperatorWriteNode#message_loc
|
1757
|
+
*/
|
1544
1758
|
pm_location_t message_loc;
|
1545
1759
|
|
1546
|
-
/**
|
1760
|
+
/**
|
1761
|
+
* CallOperatorWriteNode#read_name
|
1762
|
+
*/
|
1547
1763
|
pm_constant_id_t read_name;
|
1548
1764
|
|
1549
|
-
/**
|
1765
|
+
/**
|
1766
|
+
* CallOperatorWriteNode#write_name
|
1767
|
+
*/
|
1550
1768
|
pm_constant_id_t write_name;
|
1551
1769
|
|
1552
|
-
/**
|
1770
|
+
/**
|
1771
|
+
* CallOperatorWriteNode#operator
|
1772
|
+
*/
|
1553
1773
|
pm_constant_id_t operator;
|
1554
1774
|
|
1555
|
-
/**
|
1775
|
+
/**
|
1776
|
+
* CallOperatorWriteNode#operator_loc
|
1777
|
+
*/
|
1556
1778
|
pm_location_t operator_loc;
|
1557
1779
|
|
1558
|
-
/**
|
1780
|
+
/**
|
1781
|
+
* CallOperatorWriteNode#value
|
1782
|
+
*/
|
1559
1783
|
struct pm_node *value;
|
1560
1784
|
} pm_call_operator_write_node_t;
|
1561
1785
|
|
@@ -1567,6 +1791,7 @@ typedef struct pm_call_operator_write_node {
|
|
1567
1791
|
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1568
1792
|
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1569
1793
|
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1794
|
+
* PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
|
1570
1795
|
*
|
1571
1796
|
* @extends pm_node_t
|
1572
1797
|
*/
|
@@ -1574,25 +1799,39 @@ typedef struct pm_call_or_write_node {
|
|
1574
1799
|
/** The embedded base node. */
|
1575
1800
|
pm_node_t base;
|
1576
1801
|
|
1577
|
-
/**
|
1802
|
+
/**
|
1803
|
+
* CallOrWriteNode#receiver
|
1804
|
+
*/
|
1578
1805
|
struct pm_node *receiver;
|
1579
1806
|
|
1580
|
-
/**
|
1807
|
+
/**
|
1808
|
+
* CallOrWriteNode#call_operator_loc
|
1809
|
+
*/
|
1581
1810
|
pm_location_t call_operator_loc;
|
1582
1811
|
|
1583
|
-
/**
|
1812
|
+
/**
|
1813
|
+
* CallOrWriteNode#message_loc
|
1814
|
+
*/
|
1584
1815
|
pm_location_t message_loc;
|
1585
1816
|
|
1586
|
-
/**
|
1817
|
+
/**
|
1818
|
+
* CallOrWriteNode#read_name
|
1819
|
+
*/
|
1587
1820
|
pm_constant_id_t read_name;
|
1588
1821
|
|
1589
|
-
/**
|
1822
|
+
/**
|
1823
|
+
* CallOrWriteNode#write_name
|
1824
|
+
*/
|
1590
1825
|
pm_constant_id_t write_name;
|
1591
1826
|
|
1592
|
-
/**
|
1827
|
+
/**
|
1828
|
+
* CallOrWriteNode#operator_loc
|
1829
|
+
*/
|
1593
1830
|
pm_location_t operator_loc;
|
1594
1831
|
|
1595
|
-
/**
|
1832
|
+
/**
|
1833
|
+
* CallOrWriteNode#value
|
1834
|
+
*/
|
1596
1835
|
struct pm_node *value;
|
1597
1836
|
} pm_call_or_write_node_t;
|
1598
1837
|
|
@@ -1604,6 +1843,7 @@ typedef struct pm_call_or_write_node {
|
|
1604
1843
|
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1605
1844
|
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1606
1845
|
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1846
|
+
* PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
|
1607
1847
|
*
|
1608
1848
|
* @extends pm_node_t
|
1609
1849
|
*/
|
@@ -1611,16 +1851,24 @@ typedef struct pm_call_target_node {
|
|
1611
1851
|
/** The embedded base node. */
|
1612
1852
|
pm_node_t base;
|
1613
1853
|
|
1614
|
-
/**
|
1854
|
+
/**
|
1855
|
+
* CallTargetNode#receiver
|
1856
|
+
*/
|
1615
1857
|
struct pm_node *receiver;
|
1616
1858
|
|
1617
|
-
/**
|
1859
|
+
/**
|
1860
|
+
* CallTargetNode#call_operator_loc
|
1861
|
+
*/
|
1618
1862
|
pm_location_t call_operator_loc;
|
1619
1863
|
|
1620
|
-
/**
|
1864
|
+
/**
|
1865
|
+
* CallTargetNode#name
|
1866
|
+
*/
|
1621
1867
|
pm_constant_id_t name;
|
1622
1868
|
|
1623
|
-
/**
|
1869
|
+
/**
|
1870
|
+
* CallTargetNode#message_loc
|
1871
|
+
*/
|
1624
1872
|
pm_location_t message_loc;
|
1625
1873
|
} pm_call_target_node_t;
|
1626
1874
|
|
@@ -1635,13 +1883,19 @@ typedef struct pm_capture_pattern_node {
|
|
1635
1883
|
/** The embedded base node. */
|
1636
1884
|
pm_node_t base;
|
1637
1885
|
|
1638
|
-
/**
|
1886
|
+
/**
|
1887
|
+
* CapturePatternNode#value
|
1888
|
+
*/
|
1639
1889
|
struct pm_node *value;
|
1640
1890
|
|
1641
|
-
/**
|
1891
|
+
/**
|
1892
|
+
* CapturePatternNode#target
|
1893
|
+
*/
|
1642
1894
|
struct pm_node *target;
|
1643
1895
|
|
1644
|
-
/**
|
1896
|
+
/**
|
1897
|
+
* CapturePatternNode#operator_loc
|
1898
|
+
*/
|
1645
1899
|
pm_location_t operator_loc;
|
1646
1900
|
} pm_capture_pattern_node_t;
|
1647
1901
|
|
@@ -1656,19 +1910,29 @@ typedef struct pm_case_match_node {
|
|
1656
1910
|
/** The embedded base node. */
|
1657
1911
|
pm_node_t base;
|
1658
1912
|
|
1659
|
-
/**
|
1913
|
+
/**
|
1914
|
+
* CaseMatchNode#predicate
|
1915
|
+
*/
|
1660
1916
|
struct pm_node *predicate;
|
1661
1917
|
|
1662
|
-
/**
|
1918
|
+
/**
|
1919
|
+
* CaseMatchNode#conditions
|
1920
|
+
*/
|
1663
1921
|
struct pm_node_list conditions;
|
1664
1922
|
|
1665
|
-
/**
|
1923
|
+
/**
|
1924
|
+
* CaseMatchNode#consequent
|
1925
|
+
*/
|
1666
1926
|
struct pm_else_node *consequent;
|
1667
1927
|
|
1668
|
-
/**
|
1928
|
+
/**
|
1929
|
+
* CaseMatchNode#case_keyword_loc
|
1930
|
+
*/
|
1669
1931
|
pm_location_t case_keyword_loc;
|
1670
1932
|
|
1671
|
-
/**
|
1933
|
+
/**
|
1934
|
+
* CaseMatchNode#end_keyword_loc
|
1935
|
+
*/
|
1672
1936
|
pm_location_t end_keyword_loc;
|
1673
1937
|
} pm_case_match_node_t;
|
1674
1938
|
|
@@ -1683,19 +1947,29 @@ typedef struct pm_case_node {
|
|
1683
1947
|
/** The embedded base node. */
|
1684
1948
|
pm_node_t base;
|
1685
1949
|
|
1686
|
-
/**
|
1950
|
+
/**
|
1951
|
+
* CaseNode#predicate
|
1952
|
+
*/
|
1687
1953
|
struct pm_node *predicate;
|
1688
1954
|
|
1689
|
-
/**
|
1955
|
+
/**
|
1956
|
+
* CaseNode#conditions
|
1957
|
+
*/
|
1690
1958
|
struct pm_node_list conditions;
|
1691
1959
|
|
1692
|
-
/**
|
1960
|
+
/**
|
1961
|
+
* CaseNode#consequent
|
1962
|
+
*/
|
1693
1963
|
struct pm_else_node *consequent;
|
1694
1964
|
|
1695
|
-
/**
|
1965
|
+
/**
|
1966
|
+
* CaseNode#case_keyword_loc
|
1967
|
+
*/
|
1696
1968
|
pm_location_t case_keyword_loc;
|
1697
1969
|
|
1698
|
-
/**
|
1970
|
+
/**
|
1971
|
+
* CaseNode#end_keyword_loc
|
1972
|
+
*/
|
1699
1973
|
pm_location_t end_keyword_loc;
|
1700
1974
|
} pm_case_node_t;
|
1701
1975
|
|
@@ -1710,28 +1984,44 @@ typedef struct pm_class_node {
|
|
1710
1984
|
/** The embedded base node. */
|
1711
1985
|
pm_node_t base;
|
1712
1986
|
|
1713
|
-
/**
|
1987
|
+
/**
|
1988
|
+
* ClassNode#locals
|
1989
|
+
*/
|
1714
1990
|
pm_constant_id_list_t locals;
|
1715
1991
|
|
1716
|
-
/**
|
1992
|
+
/**
|
1993
|
+
* ClassNode#class_keyword_loc
|
1994
|
+
*/
|
1717
1995
|
pm_location_t class_keyword_loc;
|
1718
1996
|
|
1719
|
-
/**
|
1997
|
+
/**
|
1998
|
+
* ClassNode#constant_path
|
1999
|
+
*/
|
1720
2000
|
struct pm_node *constant_path;
|
1721
2001
|
|
1722
|
-
/**
|
2002
|
+
/**
|
2003
|
+
* ClassNode#inheritance_operator_loc
|
2004
|
+
*/
|
1723
2005
|
pm_location_t inheritance_operator_loc;
|
1724
2006
|
|
1725
|
-
/**
|
2007
|
+
/**
|
2008
|
+
* ClassNode#superclass
|
2009
|
+
*/
|
1726
2010
|
struct pm_node *superclass;
|
1727
2011
|
|
1728
|
-
/**
|
2012
|
+
/**
|
2013
|
+
* ClassNode#body
|
2014
|
+
*/
|
1729
2015
|
struct pm_node *body;
|
1730
2016
|
|
1731
|
-
/**
|
2017
|
+
/**
|
2018
|
+
* ClassNode#end_keyword_loc
|
2019
|
+
*/
|
1732
2020
|
pm_location_t end_keyword_loc;
|
1733
2021
|
|
1734
|
-
/**
|
2022
|
+
/**
|
2023
|
+
* ClassNode#name
|
2024
|
+
*/
|
1735
2025
|
pm_constant_id_t name;
|
1736
2026
|
} pm_class_node_t;
|
1737
2027
|
|
@@ -1746,16 +2036,24 @@ typedef struct pm_class_variable_and_write_node {
|
|
1746
2036
|
/** The embedded base node. */
|
1747
2037
|
pm_node_t base;
|
1748
2038
|
|
1749
|
-
/**
|
2039
|
+
/**
|
2040
|
+
* ClassVariableAndWriteNode#name
|
2041
|
+
*/
|
1750
2042
|
pm_constant_id_t name;
|
1751
2043
|
|
1752
|
-
/**
|
2044
|
+
/**
|
2045
|
+
* ClassVariableAndWriteNode#name_loc
|
2046
|
+
*/
|
1753
2047
|
pm_location_t name_loc;
|
1754
2048
|
|
1755
|
-
/**
|
2049
|
+
/**
|
2050
|
+
* ClassVariableAndWriteNode#operator_loc
|
2051
|
+
*/
|
1756
2052
|
pm_location_t operator_loc;
|
1757
2053
|
|
1758
|
-
/**
|
2054
|
+
/**
|
2055
|
+
* ClassVariableAndWriteNode#value
|
2056
|
+
*/
|
1759
2057
|
struct pm_node *value;
|
1760
2058
|
} pm_class_variable_and_write_node_t;
|
1761
2059
|
|
@@ -1770,19 +2068,29 @@ typedef struct pm_class_variable_operator_write_node {
|
|
1770
2068
|
/** The embedded base node. */
|
1771
2069
|
pm_node_t base;
|
1772
2070
|
|
1773
|
-
/**
|
2071
|
+
/**
|
2072
|
+
* ClassVariableOperatorWriteNode#name
|
2073
|
+
*/
|
1774
2074
|
pm_constant_id_t name;
|
1775
2075
|
|
1776
|
-
/**
|
2076
|
+
/**
|
2077
|
+
* ClassVariableOperatorWriteNode#name_loc
|
2078
|
+
*/
|
1777
2079
|
pm_location_t name_loc;
|
1778
2080
|
|
1779
|
-
/**
|
2081
|
+
/**
|
2082
|
+
* ClassVariableOperatorWriteNode#operator_loc
|
2083
|
+
*/
|
1780
2084
|
pm_location_t operator_loc;
|
1781
2085
|
|
1782
|
-
/**
|
2086
|
+
/**
|
2087
|
+
* ClassVariableOperatorWriteNode#value
|
2088
|
+
*/
|
1783
2089
|
struct pm_node *value;
|
1784
2090
|
|
1785
|
-
/**
|
2091
|
+
/**
|
2092
|
+
* ClassVariableOperatorWriteNode#operator
|
2093
|
+
*/
|
1786
2094
|
pm_constant_id_t operator;
|
1787
2095
|
} pm_class_variable_operator_write_node_t;
|
1788
2096
|
|
@@ -1797,16 +2105,24 @@ typedef struct pm_class_variable_or_write_node {
|
|
1797
2105
|
/** The embedded base node. */
|
1798
2106
|
pm_node_t base;
|
1799
2107
|
|
1800
|
-
/**
|
2108
|
+
/**
|
2109
|
+
* ClassVariableOrWriteNode#name
|
2110
|
+
*/
|
1801
2111
|
pm_constant_id_t name;
|
1802
2112
|
|
1803
|
-
/**
|
2113
|
+
/**
|
2114
|
+
* ClassVariableOrWriteNode#name_loc
|
2115
|
+
*/
|
1804
2116
|
pm_location_t name_loc;
|
1805
2117
|
|
1806
|
-
/**
|
2118
|
+
/**
|
2119
|
+
* ClassVariableOrWriteNode#operator_loc
|
2120
|
+
*/
|
1807
2121
|
pm_location_t operator_loc;
|
1808
2122
|
|
1809
|
-
/**
|
2123
|
+
/**
|
2124
|
+
* ClassVariableOrWriteNode#value
|
2125
|
+
*/
|
1810
2126
|
struct pm_node *value;
|
1811
2127
|
} pm_class_variable_or_write_node_t;
|
1812
2128
|
|
@@ -1821,7 +2137,15 @@ typedef struct pm_class_variable_read_node {
|
|
1821
2137
|
/** The embedded base node. */
|
1822
2138
|
pm_node_t base;
|
1823
2139
|
|
1824
|
-
/**
|
2140
|
+
/**
|
2141
|
+
* ClassVariableReadNode#name
|
2142
|
+
*
|
2143
|
+
* The name of the class variable, which is a `@@` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
|
2144
|
+
*
|
2145
|
+
* @@abc # name `:@@abc`
|
2146
|
+
*
|
2147
|
+
* @@_test # name `:@@_test`
|
2148
|
+
*/
|
1825
2149
|
pm_constant_id_t name;
|
1826
2150
|
} pm_class_variable_read_node_t;
|
1827
2151
|
|
@@ -1836,7 +2160,9 @@ typedef struct pm_class_variable_target_node {
|
|
1836
2160
|
/** The embedded base node. */
|
1837
2161
|
pm_node_t base;
|
1838
2162
|
|
1839
|
-
/**
|
2163
|
+
/**
|
2164
|
+
* ClassVariableTargetNode#name
|
2165
|
+
*/
|
1840
2166
|
pm_constant_id_t name;
|
1841
2167
|
} pm_class_variable_target_node_t;
|
1842
2168
|
|
@@ -1851,16 +2177,24 @@ typedef struct pm_class_variable_write_node {
|
|
1851
2177
|
/** The embedded base node. */
|
1852
2178
|
pm_node_t base;
|
1853
2179
|
|
1854
|
-
/**
|
2180
|
+
/**
|
2181
|
+
* ClassVariableWriteNode#name
|
2182
|
+
*/
|
1855
2183
|
pm_constant_id_t name;
|
1856
2184
|
|
1857
|
-
/**
|
2185
|
+
/**
|
2186
|
+
* ClassVariableWriteNode#name_loc
|
2187
|
+
*/
|
1858
2188
|
pm_location_t name_loc;
|
1859
2189
|
|
1860
|
-
/**
|
2190
|
+
/**
|
2191
|
+
* ClassVariableWriteNode#value
|
2192
|
+
*/
|
1861
2193
|
struct pm_node *value;
|
1862
2194
|
|
1863
|
-
/**
|
2195
|
+
/**
|
2196
|
+
* ClassVariableWriteNode#operator_loc
|
2197
|
+
*/
|
1864
2198
|
pm_location_t operator_loc;
|
1865
2199
|
} pm_class_variable_write_node_t;
|
1866
2200
|
|
@@ -1875,16 +2209,24 @@ typedef struct pm_constant_and_write_node {
|
|
1875
2209
|
/** The embedded base node. */
|
1876
2210
|
pm_node_t base;
|
1877
2211
|
|
1878
|
-
/**
|
2212
|
+
/**
|
2213
|
+
* ConstantAndWriteNode#name
|
2214
|
+
*/
|
1879
2215
|
pm_constant_id_t name;
|
1880
2216
|
|
1881
|
-
/**
|
2217
|
+
/**
|
2218
|
+
* ConstantAndWriteNode#name_loc
|
2219
|
+
*/
|
1882
2220
|
pm_location_t name_loc;
|
1883
2221
|
|
1884
|
-
/**
|
2222
|
+
/**
|
2223
|
+
* ConstantAndWriteNode#operator_loc
|
2224
|
+
*/
|
1885
2225
|
pm_location_t operator_loc;
|
1886
2226
|
|
1887
|
-
/**
|
2227
|
+
/**
|
2228
|
+
* ConstantAndWriteNode#value
|
2229
|
+
*/
|
1888
2230
|
struct pm_node *value;
|
1889
2231
|
} pm_constant_and_write_node_t;
|
1890
2232
|
|
@@ -1899,19 +2241,29 @@ typedef struct pm_constant_operator_write_node {
|
|
1899
2241
|
/** The embedded base node. */
|
1900
2242
|
pm_node_t base;
|
1901
2243
|
|
1902
|
-
/**
|
2244
|
+
/**
|
2245
|
+
* ConstantOperatorWriteNode#name
|
2246
|
+
*/
|
1903
2247
|
pm_constant_id_t name;
|
1904
2248
|
|
1905
|
-
/**
|
2249
|
+
/**
|
2250
|
+
* ConstantOperatorWriteNode#name_loc
|
2251
|
+
*/
|
1906
2252
|
pm_location_t name_loc;
|
1907
2253
|
|
1908
|
-
/**
|
2254
|
+
/**
|
2255
|
+
* ConstantOperatorWriteNode#operator_loc
|
2256
|
+
*/
|
1909
2257
|
pm_location_t operator_loc;
|
1910
2258
|
|
1911
|
-
/**
|
2259
|
+
/**
|
2260
|
+
* ConstantOperatorWriteNode#value
|
2261
|
+
*/
|
1912
2262
|
struct pm_node *value;
|
1913
2263
|
|
1914
|
-
/**
|
2264
|
+
/**
|
2265
|
+
* ConstantOperatorWriteNode#operator
|
2266
|
+
*/
|
1915
2267
|
pm_constant_id_t operator;
|
1916
2268
|
} pm_constant_operator_write_node_t;
|
1917
2269
|
|
@@ -1926,16 +2278,24 @@ typedef struct pm_constant_or_write_node {
|
|
1926
2278
|
/** The embedded base node. */
|
1927
2279
|
pm_node_t base;
|
1928
2280
|
|
1929
|
-
/**
|
2281
|
+
/**
|
2282
|
+
* ConstantOrWriteNode#name
|
2283
|
+
*/
|
1930
2284
|
pm_constant_id_t name;
|
1931
2285
|
|
1932
|
-
/**
|
2286
|
+
/**
|
2287
|
+
* ConstantOrWriteNode#name_loc
|
2288
|
+
*/
|
1933
2289
|
pm_location_t name_loc;
|
1934
2290
|
|
1935
|
-
/**
|
2291
|
+
/**
|
2292
|
+
* ConstantOrWriteNode#operator_loc
|
2293
|
+
*/
|
1936
2294
|
pm_location_t operator_loc;
|
1937
2295
|
|
1938
|
-
/**
|
2296
|
+
/**
|
2297
|
+
* ConstantOrWriteNode#value
|
2298
|
+
*/
|
1939
2299
|
struct pm_node *value;
|
1940
2300
|
} pm_constant_or_write_node_t;
|
1941
2301
|
|
@@ -1950,13 +2310,19 @@ typedef struct pm_constant_path_and_write_node {
|
|
1950
2310
|
/** The embedded base node. */
|
1951
2311
|
pm_node_t base;
|
1952
2312
|
|
1953
|
-
/**
|
2313
|
+
/**
|
2314
|
+
* ConstantPathAndWriteNode#target
|
2315
|
+
*/
|
1954
2316
|
struct pm_constant_path_node *target;
|
1955
2317
|
|
1956
|
-
/**
|
2318
|
+
/**
|
2319
|
+
* ConstantPathAndWriteNode#operator_loc
|
2320
|
+
*/
|
1957
2321
|
pm_location_t operator_loc;
|
1958
2322
|
|
1959
|
-
/**
|
2323
|
+
/**
|
2324
|
+
* ConstantPathAndWriteNode#value
|
2325
|
+
*/
|
1960
2326
|
struct pm_node *value;
|
1961
2327
|
} pm_constant_path_and_write_node_t;
|
1962
2328
|
|
@@ -1971,13 +2337,19 @@ typedef struct pm_constant_path_node {
|
|
1971
2337
|
/** The embedded base node. */
|
1972
2338
|
pm_node_t base;
|
1973
2339
|
|
1974
|
-
/**
|
2340
|
+
/**
|
2341
|
+
* ConstantPathNode#parent
|
2342
|
+
*/
|
1975
2343
|
struct pm_node *parent;
|
1976
2344
|
|
1977
|
-
/**
|
2345
|
+
/**
|
2346
|
+
* ConstantPathNode#child
|
2347
|
+
*/
|
1978
2348
|
struct pm_node *child;
|
1979
2349
|
|
1980
|
-
/**
|
2350
|
+
/**
|
2351
|
+
* ConstantPathNode#delimiter_loc
|
2352
|
+
*/
|
1981
2353
|
pm_location_t delimiter_loc;
|
1982
2354
|
} pm_constant_path_node_t;
|
1983
2355
|
|
@@ -1992,16 +2364,24 @@ typedef struct pm_constant_path_operator_write_node {
|
|
1992
2364
|
/** The embedded base node. */
|
1993
2365
|
pm_node_t base;
|
1994
2366
|
|
1995
|
-
/**
|
2367
|
+
/**
|
2368
|
+
* ConstantPathOperatorWriteNode#target
|
2369
|
+
*/
|
1996
2370
|
struct pm_constant_path_node *target;
|
1997
2371
|
|
1998
|
-
/**
|
2372
|
+
/**
|
2373
|
+
* ConstantPathOperatorWriteNode#operator_loc
|
2374
|
+
*/
|
1999
2375
|
pm_location_t operator_loc;
|
2000
2376
|
|
2001
|
-
/**
|
2377
|
+
/**
|
2378
|
+
* ConstantPathOperatorWriteNode#value
|
2379
|
+
*/
|
2002
2380
|
struct pm_node *value;
|
2003
2381
|
|
2004
|
-
/**
|
2382
|
+
/**
|
2383
|
+
* ConstantPathOperatorWriteNode#operator
|
2384
|
+
*/
|
2005
2385
|
pm_constant_id_t operator;
|
2006
2386
|
} pm_constant_path_operator_write_node_t;
|
2007
2387
|
|
@@ -2016,13 +2396,19 @@ typedef struct pm_constant_path_or_write_node {
|
|
2016
2396
|
/** The embedded base node. */
|
2017
2397
|
pm_node_t base;
|
2018
2398
|
|
2019
|
-
/**
|
2399
|
+
/**
|
2400
|
+
* ConstantPathOrWriteNode#target
|
2401
|
+
*/
|
2020
2402
|
struct pm_constant_path_node *target;
|
2021
2403
|
|
2022
|
-
/**
|
2404
|
+
/**
|
2405
|
+
* ConstantPathOrWriteNode#operator_loc
|
2406
|
+
*/
|
2023
2407
|
pm_location_t operator_loc;
|
2024
2408
|
|
2025
|
-
/**
|
2409
|
+
/**
|
2410
|
+
* ConstantPathOrWriteNode#value
|
2411
|
+
*/
|
2026
2412
|
struct pm_node *value;
|
2027
2413
|
} pm_constant_path_or_write_node_t;
|
2028
2414
|
|
@@ -2037,13 +2423,19 @@ typedef struct pm_constant_path_target_node {
|
|
2037
2423
|
/** The embedded base node. */
|
2038
2424
|
pm_node_t base;
|
2039
2425
|
|
2040
|
-
/**
|
2426
|
+
/**
|
2427
|
+
* ConstantPathTargetNode#parent
|
2428
|
+
*/
|
2041
2429
|
struct pm_node *parent;
|
2042
2430
|
|
2043
|
-
/**
|
2431
|
+
/**
|
2432
|
+
* ConstantPathTargetNode#child
|
2433
|
+
*/
|
2044
2434
|
struct pm_node *child;
|
2045
2435
|
|
2046
|
-
/**
|
2436
|
+
/**
|
2437
|
+
* ConstantPathTargetNode#delimiter_loc
|
2438
|
+
*/
|
2047
2439
|
pm_location_t delimiter_loc;
|
2048
2440
|
} pm_constant_path_target_node_t;
|
2049
2441
|
|
@@ -2058,13 +2450,19 @@ typedef struct pm_constant_path_write_node {
|
|
2058
2450
|
/** The embedded base node. */
|
2059
2451
|
pm_node_t base;
|
2060
2452
|
|
2061
|
-
/**
|
2453
|
+
/**
|
2454
|
+
* ConstantPathWriteNode#target
|
2455
|
+
*/
|
2062
2456
|
struct pm_constant_path_node *target;
|
2063
2457
|
|
2064
|
-
/**
|
2458
|
+
/**
|
2459
|
+
* ConstantPathWriteNode#operator_loc
|
2460
|
+
*/
|
2065
2461
|
pm_location_t operator_loc;
|
2066
2462
|
|
2067
|
-
/**
|
2463
|
+
/**
|
2464
|
+
* ConstantPathWriteNode#value
|
2465
|
+
*/
|
2068
2466
|
struct pm_node *value;
|
2069
2467
|
} pm_constant_path_write_node_t;
|
2070
2468
|
|
@@ -2079,7 +2477,15 @@ typedef struct pm_constant_read_node {
|
|
2079
2477
|
/** The embedded base node. */
|
2080
2478
|
pm_node_t base;
|
2081
2479
|
|
2082
|
-
/**
|
2480
|
+
/**
|
2481
|
+
* ConstantReadNode#name
|
2482
|
+
*
|
2483
|
+
* The name of the [constant](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#constants).
|
2484
|
+
*
|
2485
|
+
* X # name `:X`
|
2486
|
+
*
|
2487
|
+
* SOME_CONSTANT # name `:SOME_CONSTANT`
|
2488
|
+
*/
|
2083
2489
|
pm_constant_id_t name;
|
2084
2490
|
} pm_constant_read_node_t;
|
2085
2491
|
|
@@ -2094,7 +2500,9 @@ typedef struct pm_constant_target_node {
|
|
2094
2500
|
/** The embedded base node. */
|
2095
2501
|
pm_node_t base;
|
2096
2502
|
|
2097
|
-
/**
|
2503
|
+
/**
|
2504
|
+
* ConstantTargetNode#name
|
2505
|
+
*/
|
2098
2506
|
pm_constant_id_t name;
|
2099
2507
|
} pm_constant_target_node_t;
|
2100
2508
|
|
@@ -2109,16 +2517,24 @@ typedef struct pm_constant_write_node {
|
|
2109
2517
|
/** The embedded base node. */
|
2110
2518
|
pm_node_t base;
|
2111
2519
|
|
2112
|
-
/**
|
2520
|
+
/**
|
2521
|
+
* ConstantWriteNode#name
|
2522
|
+
*/
|
2113
2523
|
pm_constant_id_t name;
|
2114
2524
|
|
2115
|
-
/**
|
2525
|
+
/**
|
2526
|
+
* ConstantWriteNode#name_loc
|
2527
|
+
*/
|
2116
2528
|
pm_location_t name_loc;
|
2117
2529
|
|
2118
|
-
/**
|
2530
|
+
/**
|
2531
|
+
* ConstantWriteNode#value
|
2532
|
+
*/
|
2119
2533
|
struct pm_node *value;
|
2120
2534
|
|
2121
|
-
/**
|
2535
|
+
/**
|
2536
|
+
* ConstantWriteNode#operator_loc
|
2537
|
+
*/
|
2122
2538
|
pm_location_t operator_loc;
|
2123
2539
|
} pm_constant_write_node_t;
|
2124
2540
|
|
@@ -2133,43 +2549,64 @@ typedef struct pm_def_node {
|
|
2133
2549
|
/** The embedded base node. */
|
2134
2550
|
pm_node_t base;
|
2135
2551
|
|
2136
|
-
/**
|
2552
|
+
/**
|
2553
|
+
* DefNode#name
|
2554
|
+
*/
|
2137
2555
|
pm_constant_id_t name;
|
2138
2556
|
|
2139
|
-
/**
|
2557
|
+
/**
|
2558
|
+
* DefNode#name_loc
|
2559
|
+
*/
|
2140
2560
|
pm_location_t name_loc;
|
2141
2561
|
|
2142
|
-
/**
|
2562
|
+
/**
|
2563
|
+
* DefNode#receiver
|
2564
|
+
*/
|
2143
2565
|
struct pm_node *receiver;
|
2144
2566
|
|
2145
|
-
/**
|
2567
|
+
/**
|
2568
|
+
* DefNode#parameters
|
2569
|
+
*/
|
2146
2570
|
struct pm_parameters_node *parameters;
|
2147
2571
|
|
2148
|
-
/**
|
2572
|
+
/**
|
2573
|
+
* DefNode#body
|
2574
|
+
*/
|
2149
2575
|
struct pm_node *body;
|
2150
2576
|
|
2151
|
-
/**
|
2577
|
+
/**
|
2578
|
+
* DefNode#locals
|
2579
|
+
*/
|
2152
2580
|
pm_constant_id_list_t locals;
|
2153
2581
|
|
2154
|
-
/**
|
2155
|
-
|
2156
|
-
|
2157
|
-
/** DefNode#def_keyword_loc */
|
2582
|
+
/**
|
2583
|
+
* DefNode#def_keyword_loc
|
2584
|
+
*/
|
2158
2585
|
pm_location_t def_keyword_loc;
|
2159
2586
|
|
2160
|
-
/**
|
2587
|
+
/**
|
2588
|
+
* DefNode#operator_loc
|
2589
|
+
*/
|
2161
2590
|
pm_location_t operator_loc;
|
2162
2591
|
|
2163
|
-
/**
|
2592
|
+
/**
|
2593
|
+
* DefNode#lparen_loc
|
2594
|
+
*/
|
2164
2595
|
pm_location_t lparen_loc;
|
2165
2596
|
|
2166
|
-
/**
|
2597
|
+
/**
|
2598
|
+
* DefNode#rparen_loc
|
2599
|
+
*/
|
2167
2600
|
pm_location_t rparen_loc;
|
2168
2601
|
|
2169
|
-
/**
|
2602
|
+
/**
|
2603
|
+
* DefNode#equal_loc
|
2604
|
+
*/
|
2170
2605
|
pm_location_t equal_loc;
|
2171
2606
|
|
2172
|
-
/**
|
2607
|
+
/**
|
2608
|
+
* DefNode#end_keyword_loc
|
2609
|
+
*/
|
2173
2610
|
pm_location_t end_keyword_loc;
|
2174
2611
|
} pm_def_node_t;
|
2175
2612
|
|
@@ -2184,16 +2621,24 @@ typedef struct pm_defined_node {
|
|
2184
2621
|
/** The embedded base node. */
|
2185
2622
|
pm_node_t base;
|
2186
2623
|
|
2187
|
-
/**
|
2624
|
+
/**
|
2625
|
+
* DefinedNode#lparen_loc
|
2626
|
+
*/
|
2188
2627
|
pm_location_t lparen_loc;
|
2189
2628
|
|
2190
|
-
/**
|
2629
|
+
/**
|
2630
|
+
* DefinedNode#value
|
2631
|
+
*/
|
2191
2632
|
struct pm_node *value;
|
2192
2633
|
|
2193
|
-
/**
|
2634
|
+
/**
|
2635
|
+
* DefinedNode#rparen_loc
|
2636
|
+
*/
|
2194
2637
|
pm_location_t rparen_loc;
|
2195
2638
|
|
2196
|
-
/**
|
2639
|
+
/**
|
2640
|
+
* DefinedNode#keyword_loc
|
2641
|
+
*/
|
2197
2642
|
pm_location_t keyword_loc;
|
2198
2643
|
} pm_defined_node_t;
|
2199
2644
|
|
@@ -2208,13 +2653,19 @@ typedef struct pm_else_node {
|
|
2208
2653
|
/** The embedded base node. */
|
2209
2654
|
pm_node_t base;
|
2210
2655
|
|
2211
|
-
/**
|
2656
|
+
/**
|
2657
|
+
* ElseNode#else_keyword_loc
|
2658
|
+
*/
|
2212
2659
|
pm_location_t else_keyword_loc;
|
2213
2660
|
|
2214
|
-
/**
|
2661
|
+
/**
|
2662
|
+
* ElseNode#statements
|
2663
|
+
*/
|
2215
2664
|
struct pm_statements_node *statements;
|
2216
2665
|
|
2217
|
-
/**
|
2666
|
+
/**
|
2667
|
+
* ElseNode#end_keyword_loc
|
2668
|
+
*/
|
2218
2669
|
pm_location_t end_keyword_loc;
|
2219
2670
|
} pm_else_node_t;
|
2220
2671
|
|
@@ -2229,13 +2680,19 @@ typedef struct pm_embedded_statements_node {
|
|
2229
2680
|
/** The embedded base node. */
|
2230
2681
|
pm_node_t base;
|
2231
2682
|
|
2232
|
-
/**
|
2683
|
+
/**
|
2684
|
+
* EmbeddedStatementsNode#opening_loc
|
2685
|
+
*/
|
2233
2686
|
pm_location_t opening_loc;
|
2234
2687
|
|
2235
|
-
/**
|
2688
|
+
/**
|
2689
|
+
* EmbeddedStatementsNode#statements
|
2690
|
+
*/
|
2236
2691
|
struct pm_statements_node *statements;
|
2237
2692
|
|
2238
|
-
/**
|
2693
|
+
/**
|
2694
|
+
* EmbeddedStatementsNode#closing_loc
|
2695
|
+
*/
|
2239
2696
|
pm_location_t closing_loc;
|
2240
2697
|
} pm_embedded_statements_node_t;
|
2241
2698
|
|
@@ -2250,10 +2707,14 @@ typedef struct pm_embedded_variable_node {
|
|
2250
2707
|
/** The embedded base node. */
|
2251
2708
|
pm_node_t base;
|
2252
2709
|
|
2253
|
-
/**
|
2710
|
+
/**
|
2711
|
+
* EmbeddedVariableNode#operator_loc
|
2712
|
+
*/
|
2254
2713
|
pm_location_t operator_loc;
|
2255
2714
|
|
2256
|
-
/**
|
2715
|
+
/**
|
2716
|
+
* EmbeddedVariableNode#variable
|
2717
|
+
*/
|
2257
2718
|
struct pm_node *variable;
|
2258
2719
|
} pm_embedded_variable_node_t;
|
2259
2720
|
|
@@ -2268,13 +2729,19 @@ typedef struct pm_ensure_node {
|
|
2268
2729
|
/** The embedded base node. */
|
2269
2730
|
pm_node_t base;
|
2270
2731
|
|
2271
|
-
/**
|
2732
|
+
/**
|
2733
|
+
* EnsureNode#ensure_keyword_loc
|
2734
|
+
*/
|
2272
2735
|
pm_location_t ensure_keyword_loc;
|
2273
2736
|
|
2274
|
-
/**
|
2737
|
+
/**
|
2738
|
+
* EnsureNode#statements
|
2739
|
+
*/
|
2275
2740
|
struct pm_statements_node *statements;
|
2276
2741
|
|
2277
|
-
/**
|
2742
|
+
/**
|
2743
|
+
* EnsureNode#end_keyword_loc
|
2744
|
+
*/
|
2278
2745
|
pm_location_t end_keyword_loc;
|
2279
2746
|
} pm_ensure_node_t;
|
2280
2747
|
|
@@ -2301,22 +2768,34 @@ typedef struct pm_find_pattern_node {
|
|
2301
2768
|
/** The embedded base node. */
|
2302
2769
|
pm_node_t base;
|
2303
2770
|
|
2304
|
-
/**
|
2771
|
+
/**
|
2772
|
+
* FindPatternNode#constant
|
2773
|
+
*/
|
2305
2774
|
struct pm_node *constant;
|
2306
2775
|
|
2307
|
-
/**
|
2776
|
+
/**
|
2777
|
+
* FindPatternNode#left
|
2778
|
+
*/
|
2308
2779
|
struct pm_node *left;
|
2309
2780
|
|
2310
|
-
/**
|
2781
|
+
/**
|
2782
|
+
* FindPatternNode#requireds
|
2783
|
+
*/
|
2311
2784
|
struct pm_node_list requireds;
|
2312
2785
|
|
2313
|
-
/**
|
2786
|
+
/**
|
2787
|
+
* FindPatternNode#right
|
2788
|
+
*/
|
2314
2789
|
struct pm_node *right;
|
2315
2790
|
|
2316
|
-
/**
|
2791
|
+
/**
|
2792
|
+
* FindPatternNode#opening_loc
|
2793
|
+
*/
|
2317
2794
|
pm_location_t opening_loc;
|
2318
2795
|
|
2319
|
-
/**
|
2796
|
+
/**
|
2797
|
+
* FindPatternNode#closing_loc
|
2798
|
+
*/
|
2320
2799
|
pm_location_t closing_loc;
|
2321
2800
|
} pm_find_pattern_node_t;
|
2322
2801
|
|
@@ -2333,13 +2812,19 @@ typedef struct pm_flip_flop_node {
|
|
2333
2812
|
/** The embedded base node. */
|
2334
2813
|
pm_node_t base;
|
2335
2814
|
|
2336
|
-
/**
|
2815
|
+
/**
|
2816
|
+
* FlipFlopNode#left
|
2817
|
+
*/
|
2337
2818
|
struct pm_node *left;
|
2338
2819
|
|
2339
|
-
/**
|
2820
|
+
/**
|
2821
|
+
* FlipFlopNode#right
|
2822
|
+
*/
|
2340
2823
|
struct pm_node *right;
|
2341
2824
|
|
2342
|
-
/**
|
2825
|
+
/**
|
2826
|
+
* FlipFlopNode#operator_loc
|
2827
|
+
*/
|
2343
2828
|
pm_location_t operator_loc;
|
2344
2829
|
} pm_flip_flop_node_t;
|
2345
2830
|
|
@@ -2366,25 +2851,39 @@ typedef struct pm_for_node {
|
|
2366
2851
|
/** The embedded base node. */
|
2367
2852
|
pm_node_t base;
|
2368
2853
|
|
2369
|
-
/**
|
2854
|
+
/**
|
2855
|
+
* ForNode#index
|
2856
|
+
*/
|
2370
2857
|
struct pm_node *index;
|
2371
2858
|
|
2372
|
-
/**
|
2859
|
+
/**
|
2860
|
+
* ForNode#collection
|
2861
|
+
*/
|
2373
2862
|
struct pm_node *collection;
|
2374
2863
|
|
2375
|
-
/**
|
2864
|
+
/**
|
2865
|
+
* ForNode#statements
|
2866
|
+
*/
|
2376
2867
|
struct pm_statements_node *statements;
|
2377
2868
|
|
2378
|
-
/**
|
2869
|
+
/**
|
2870
|
+
* ForNode#for_keyword_loc
|
2871
|
+
*/
|
2379
2872
|
pm_location_t for_keyword_loc;
|
2380
2873
|
|
2381
|
-
/**
|
2874
|
+
/**
|
2875
|
+
* ForNode#in_keyword_loc
|
2876
|
+
*/
|
2382
2877
|
pm_location_t in_keyword_loc;
|
2383
2878
|
|
2384
|
-
/**
|
2879
|
+
/**
|
2880
|
+
* ForNode#do_keyword_loc
|
2881
|
+
*/
|
2385
2882
|
pm_location_t do_keyword_loc;
|
2386
2883
|
|
2387
|
-
/**
|
2884
|
+
/**
|
2885
|
+
* ForNode#end_keyword_loc
|
2886
|
+
*/
|
2388
2887
|
pm_location_t end_keyword_loc;
|
2389
2888
|
} pm_for_node_t;
|
2390
2889
|
|
@@ -2423,7 +2922,9 @@ typedef struct pm_forwarding_super_node {
|
|
2423
2922
|
/** The embedded base node. */
|
2424
2923
|
pm_node_t base;
|
2425
2924
|
|
2426
|
-
/**
|
2925
|
+
/**
|
2926
|
+
* ForwardingSuperNode#block
|
2927
|
+
*/
|
2427
2928
|
struct pm_block_node *block;
|
2428
2929
|
} pm_forwarding_super_node_t;
|
2429
2930
|
|
@@ -2438,16 +2939,24 @@ typedef struct pm_global_variable_and_write_node {
|
|
2438
2939
|
/** The embedded base node. */
|
2439
2940
|
pm_node_t base;
|
2440
2941
|
|
2441
|
-
/**
|
2942
|
+
/**
|
2943
|
+
* GlobalVariableAndWriteNode#name
|
2944
|
+
*/
|
2442
2945
|
pm_constant_id_t name;
|
2443
2946
|
|
2444
|
-
/**
|
2947
|
+
/**
|
2948
|
+
* GlobalVariableAndWriteNode#name_loc
|
2949
|
+
*/
|
2445
2950
|
pm_location_t name_loc;
|
2446
2951
|
|
2447
|
-
/**
|
2952
|
+
/**
|
2953
|
+
* GlobalVariableAndWriteNode#operator_loc
|
2954
|
+
*/
|
2448
2955
|
pm_location_t operator_loc;
|
2449
2956
|
|
2450
|
-
/**
|
2957
|
+
/**
|
2958
|
+
* GlobalVariableAndWriteNode#value
|
2959
|
+
*/
|
2451
2960
|
struct pm_node *value;
|
2452
2961
|
} pm_global_variable_and_write_node_t;
|
2453
2962
|
|
@@ -2462,19 +2971,29 @@ typedef struct pm_global_variable_operator_write_node {
|
|
2462
2971
|
/** The embedded base node. */
|
2463
2972
|
pm_node_t base;
|
2464
2973
|
|
2465
|
-
/**
|
2974
|
+
/**
|
2975
|
+
* GlobalVariableOperatorWriteNode#name
|
2976
|
+
*/
|
2466
2977
|
pm_constant_id_t name;
|
2467
2978
|
|
2468
|
-
/**
|
2979
|
+
/**
|
2980
|
+
* GlobalVariableOperatorWriteNode#name_loc
|
2981
|
+
*/
|
2469
2982
|
pm_location_t name_loc;
|
2470
2983
|
|
2471
|
-
/**
|
2984
|
+
/**
|
2985
|
+
* GlobalVariableOperatorWriteNode#operator_loc
|
2986
|
+
*/
|
2472
2987
|
pm_location_t operator_loc;
|
2473
2988
|
|
2474
|
-
/**
|
2989
|
+
/**
|
2990
|
+
* GlobalVariableOperatorWriteNode#value
|
2991
|
+
*/
|
2475
2992
|
struct pm_node *value;
|
2476
2993
|
|
2477
|
-
/**
|
2994
|
+
/**
|
2995
|
+
* GlobalVariableOperatorWriteNode#operator
|
2996
|
+
*/
|
2478
2997
|
pm_constant_id_t operator;
|
2479
2998
|
} pm_global_variable_operator_write_node_t;
|
2480
2999
|
|
@@ -2489,16 +3008,24 @@ typedef struct pm_global_variable_or_write_node {
|
|
2489
3008
|
/** The embedded base node. */
|
2490
3009
|
pm_node_t base;
|
2491
3010
|
|
2492
|
-
/**
|
3011
|
+
/**
|
3012
|
+
* GlobalVariableOrWriteNode#name
|
3013
|
+
*/
|
2493
3014
|
pm_constant_id_t name;
|
2494
3015
|
|
2495
|
-
/**
|
3016
|
+
/**
|
3017
|
+
* GlobalVariableOrWriteNode#name_loc
|
3018
|
+
*/
|
2496
3019
|
pm_location_t name_loc;
|
2497
3020
|
|
2498
|
-
/**
|
3021
|
+
/**
|
3022
|
+
* GlobalVariableOrWriteNode#operator_loc
|
3023
|
+
*/
|
2499
3024
|
pm_location_t operator_loc;
|
2500
3025
|
|
2501
|
-
/**
|
3026
|
+
/**
|
3027
|
+
* GlobalVariableOrWriteNode#value
|
3028
|
+
*/
|
2502
3029
|
struct pm_node *value;
|
2503
3030
|
} pm_global_variable_or_write_node_t;
|
2504
3031
|
|
@@ -2513,7 +3040,15 @@ typedef struct pm_global_variable_read_node {
|
|
2513
3040
|
/** The embedded base node. */
|
2514
3041
|
pm_node_t base;
|
2515
3042
|
|
2516
|
-
/**
|
3043
|
+
/**
|
3044
|
+
* GlobalVariableReadNode#name
|
3045
|
+
*
|
3046
|
+
* The name of the global variable, which is a `$` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifier). Alternatively, it can be one of the special global variables designated by a symbol.
|
3047
|
+
*
|
3048
|
+
* $foo # name `:$foo`
|
3049
|
+
*
|
3050
|
+
* $_Test # name `:$_Test`
|
3051
|
+
*/
|
2517
3052
|
pm_constant_id_t name;
|
2518
3053
|
} pm_global_variable_read_node_t;
|
2519
3054
|
|
@@ -2528,7 +3063,9 @@ typedef struct pm_global_variable_target_node {
|
|
2528
3063
|
/** The embedded base node. */
|
2529
3064
|
pm_node_t base;
|
2530
3065
|
|
2531
|
-
/**
|
3066
|
+
/**
|
3067
|
+
* GlobalVariableTargetNode#name
|
3068
|
+
*/
|
2532
3069
|
pm_constant_id_t name;
|
2533
3070
|
} pm_global_variable_target_node_t;
|
2534
3071
|
|
@@ -2543,16 +3080,24 @@ typedef struct pm_global_variable_write_node {
|
|
2543
3080
|
/** The embedded base node. */
|
2544
3081
|
pm_node_t base;
|
2545
3082
|
|
2546
|
-
/**
|
3083
|
+
/**
|
3084
|
+
* GlobalVariableWriteNode#name
|
3085
|
+
*/
|
2547
3086
|
pm_constant_id_t name;
|
2548
3087
|
|
2549
|
-
/**
|
3088
|
+
/**
|
3089
|
+
* GlobalVariableWriteNode#name_loc
|
3090
|
+
*/
|
2550
3091
|
pm_location_t name_loc;
|
2551
3092
|
|
2552
|
-
/**
|
3093
|
+
/**
|
3094
|
+
* GlobalVariableWriteNode#value
|
3095
|
+
*/
|
2553
3096
|
struct pm_node *value;
|
2554
3097
|
|
2555
|
-
/**
|
3098
|
+
/**
|
3099
|
+
* GlobalVariableWriteNode#operator_loc
|
3100
|
+
*/
|
2556
3101
|
pm_location_t operator_loc;
|
2557
3102
|
} pm_global_variable_write_node_t;
|
2558
3103
|
|
@@ -2567,13 +3112,37 @@ typedef struct pm_hash_node {
|
|
2567
3112
|
/** The embedded base node. */
|
2568
3113
|
pm_node_t base;
|
2569
3114
|
|
2570
|
-
/**
|
3115
|
+
/**
|
3116
|
+
* HashNode#opening_loc
|
3117
|
+
*
|
3118
|
+
* The location of the opening brace.
|
3119
|
+
*
|
3120
|
+
* { a => b }
|
3121
|
+
* ^
|
3122
|
+
*/
|
2571
3123
|
pm_location_t opening_loc;
|
2572
3124
|
|
2573
|
-
/**
|
3125
|
+
/**
|
3126
|
+
* HashNode#elements
|
3127
|
+
*
|
3128
|
+
* The elements of the hash. These can be either `AssocNode`s or `AssocSplatNode`s.
|
3129
|
+
*
|
3130
|
+
* { a: b }
|
3131
|
+
* ^^^^
|
3132
|
+
*
|
3133
|
+
* { **foo }
|
3134
|
+
* ^^^^^
|
3135
|
+
*/
|
2574
3136
|
struct pm_node_list elements;
|
2575
3137
|
|
2576
|
-
/**
|
3138
|
+
/**
|
3139
|
+
* HashNode#closing_loc
|
3140
|
+
*
|
3141
|
+
* The location of the closing brace.
|
3142
|
+
*
|
3143
|
+
* { a => b }
|
3144
|
+
* ^
|
3145
|
+
*/
|
2577
3146
|
pm_location_t closing_loc;
|
2578
3147
|
} pm_hash_node_t;
|
2579
3148
|
|
@@ -2588,19 +3157,29 @@ typedef struct pm_hash_pattern_node {
|
|
2588
3157
|
/** The embedded base node. */
|
2589
3158
|
pm_node_t base;
|
2590
3159
|
|
2591
|
-
/**
|
3160
|
+
/**
|
3161
|
+
* HashPatternNode#constant
|
3162
|
+
*/
|
2592
3163
|
struct pm_node *constant;
|
2593
3164
|
|
2594
|
-
/**
|
3165
|
+
/**
|
3166
|
+
* HashPatternNode#elements
|
3167
|
+
*/
|
2595
3168
|
struct pm_node_list elements;
|
2596
3169
|
|
2597
|
-
/**
|
3170
|
+
/**
|
3171
|
+
* HashPatternNode#rest
|
3172
|
+
*/
|
2598
3173
|
struct pm_node *rest;
|
2599
3174
|
|
2600
|
-
/**
|
3175
|
+
/**
|
3176
|
+
* HashPatternNode#opening_loc
|
3177
|
+
*/
|
2601
3178
|
pm_location_t opening_loc;
|
2602
3179
|
|
2603
|
-
/**
|
3180
|
+
/**
|
3181
|
+
* HashPatternNode#closing_loc
|
3182
|
+
*/
|
2604
3183
|
pm_location_t closing_loc;
|
2605
3184
|
} pm_hash_pattern_node_t;
|
2606
3185
|
|
@@ -2615,22 +3194,34 @@ typedef struct pm_if_node {
|
|
2615
3194
|
/** The embedded base node. */
|
2616
3195
|
pm_node_t base;
|
2617
3196
|
|
2618
|
-
/**
|
3197
|
+
/**
|
3198
|
+
* IfNode#if_keyword_loc
|
3199
|
+
*/
|
2619
3200
|
pm_location_t if_keyword_loc;
|
2620
3201
|
|
2621
|
-
/**
|
3202
|
+
/**
|
3203
|
+
* IfNode#predicate
|
3204
|
+
*/
|
2622
3205
|
struct pm_node *predicate;
|
2623
3206
|
|
2624
|
-
/**
|
3207
|
+
/**
|
3208
|
+
* IfNode#then_keyword_loc
|
3209
|
+
*/
|
2625
3210
|
pm_location_t then_keyword_loc;
|
2626
3211
|
|
2627
|
-
/**
|
3212
|
+
/**
|
3213
|
+
* IfNode#statements
|
3214
|
+
*/
|
2628
3215
|
struct pm_statements_node *statements;
|
2629
3216
|
|
2630
|
-
/**
|
3217
|
+
/**
|
3218
|
+
* IfNode#consequent
|
3219
|
+
*/
|
2631
3220
|
struct pm_node *consequent;
|
2632
3221
|
|
2633
|
-
/**
|
3222
|
+
/**
|
3223
|
+
* IfNode#end_keyword_loc
|
3224
|
+
*/
|
2634
3225
|
pm_location_t end_keyword_loc;
|
2635
3226
|
} pm_if_node_t;
|
2636
3227
|
|
@@ -2645,7 +3236,9 @@ typedef struct pm_imaginary_node {
|
|
2645
3236
|
/** The embedded base node. */
|
2646
3237
|
pm_node_t base;
|
2647
3238
|
|
2648
|
-
/**
|
3239
|
+
/**
|
3240
|
+
* ImaginaryNode#numeric
|
3241
|
+
*/
|
2649
3242
|
struct pm_node *numeric;
|
2650
3243
|
} pm_imaginary_node_t;
|
2651
3244
|
|
@@ -2660,7 +3253,9 @@ typedef struct pm_implicit_node {
|
|
2660
3253
|
/** The embedded base node. */
|
2661
3254
|
pm_node_t base;
|
2662
3255
|
|
2663
|
-
/**
|
3256
|
+
/**
|
3257
|
+
* ImplicitNode#value
|
3258
|
+
*/
|
2664
3259
|
struct pm_node *value;
|
2665
3260
|
} pm_implicit_node_t;
|
2666
3261
|
|
@@ -2687,16 +3282,24 @@ typedef struct pm_in_node {
|
|
2687
3282
|
/** The embedded base node. */
|
2688
3283
|
pm_node_t base;
|
2689
3284
|
|
2690
|
-
/**
|
3285
|
+
/**
|
3286
|
+
* InNode#pattern
|
3287
|
+
*/
|
2691
3288
|
struct pm_node *pattern;
|
2692
3289
|
|
2693
|
-
/**
|
3290
|
+
/**
|
3291
|
+
* InNode#statements
|
3292
|
+
*/
|
2694
3293
|
struct pm_statements_node *statements;
|
2695
3294
|
|
2696
|
-
/**
|
3295
|
+
/**
|
3296
|
+
* InNode#in_loc
|
3297
|
+
*/
|
2697
3298
|
pm_location_t in_loc;
|
2698
3299
|
|
2699
|
-
/**
|
3300
|
+
/**
|
3301
|
+
* InNode#then_loc
|
3302
|
+
*/
|
2700
3303
|
pm_location_t then_loc;
|
2701
3304
|
} pm_in_node_t;
|
2702
3305
|
|
@@ -2708,6 +3311,7 @@ typedef struct pm_in_node {
|
|
2708
3311
|
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
2709
3312
|
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
2710
3313
|
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
3314
|
+
* PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
|
2711
3315
|
*
|
2712
3316
|
* @extends pm_node_t
|
2713
3317
|
*/
|
@@ -2715,28 +3319,44 @@ typedef struct pm_index_and_write_node {
|
|
2715
3319
|
/** The embedded base node. */
|
2716
3320
|
pm_node_t base;
|
2717
3321
|
|
2718
|
-
/**
|
3322
|
+
/**
|
3323
|
+
* IndexAndWriteNode#receiver
|
3324
|
+
*/
|
2719
3325
|
struct pm_node *receiver;
|
2720
3326
|
|
2721
|
-
/**
|
3327
|
+
/**
|
3328
|
+
* IndexAndWriteNode#call_operator_loc
|
3329
|
+
*/
|
2722
3330
|
pm_location_t call_operator_loc;
|
2723
3331
|
|
2724
|
-
/**
|
3332
|
+
/**
|
3333
|
+
* IndexAndWriteNode#opening_loc
|
3334
|
+
*/
|
2725
3335
|
pm_location_t opening_loc;
|
2726
3336
|
|
2727
|
-
/**
|
3337
|
+
/**
|
3338
|
+
* IndexAndWriteNode#arguments
|
3339
|
+
*/
|
2728
3340
|
struct pm_arguments_node *arguments;
|
2729
3341
|
|
2730
|
-
/**
|
3342
|
+
/**
|
3343
|
+
* IndexAndWriteNode#closing_loc
|
3344
|
+
*/
|
2731
3345
|
pm_location_t closing_loc;
|
2732
3346
|
|
2733
|
-
/**
|
3347
|
+
/**
|
3348
|
+
* IndexAndWriteNode#block
|
3349
|
+
*/
|
2734
3350
|
struct pm_node *block;
|
2735
3351
|
|
2736
|
-
/**
|
3352
|
+
/**
|
3353
|
+
* IndexAndWriteNode#operator_loc
|
3354
|
+
*/
|
2737
3355
|
pm_location_t operator_loc;
|
2738
3356
|
|
2739
|
-
/**
|
3357
|
+
/**
|
3358
|
+
* IndexAndWriteNode#value
|
3359
|
+
*/
|
2740
3360
|
struct pm_node *value;
|
2741
3361
|
} pm_index_and_write_node_t;
|
2742
3362
|
|
@@ -2748,6 +3368,7 @@ typedef struct pm_index_and_write_node {
|
|
2748
3368
|
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
2749
3369
|
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
2750
3370
|
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
3371
|
+
* PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
|
2751
3372
|
*
|
2752
3373
|
* @extends pm_node_t
|
2753
3374
|
*/
|
@@ -2755,31 +3376,49 @@ typedef struct pm_index_operator_write_node {
|
|
2755
3376
|
/** The embedded base node. */
|
2756
3377
|
pm_node_t base;
|
2757
3378
|
|
2758
|
-
/**
|
3379
|
+
/**
|
3380
|
+
* IndexOperatorWriteNode#receiver
|
3381
|
+
*/
|
2759
3382
|
struct pm_node *receiver;
|
2760
3383
|
|
2761
|
-
/**
|
3384
|
+
/**
|
3385
|
+
* IndexOperatorWriteNode#call_operator_loc
|
3386
|
+
*/
|
2762
3387
|
pm_location_t call_operator_loc;
|
2763
3388
|
|
2764
|
-
/**
|
3389
|
+
/**
|
3390
|
+
* IndexOperatorWriteNode#opening_loc
|
3391
|
+
*/
|
2765
3392
|
pm_location_t opening_loc;
|
2766
3393
|
|
2767
|
-
/**
|
3394
|
+
/**
|
3395
|
+
* IndexOperatorWriteNode#arguments
|
3396
|
+
*/
|
2768
3397
|
struct pm_arguments_node *arguments;
|
2769
3398
|
|
2770
|
-
/**
|
3399
|
+
/**
|
3400
|
+
* IndexOperatorWriteNode#closing_loc
|
3401
|
+
*/
|
2771
3402
|
pm_location_t closing_loc;
|
2772
3403
|
|
2773
|
-
/**
|
3404
|
+
/**
|
3405
|
+
* IndexOperatorWriteNode#block
|
3406
|
+
*/
|
2774
3407
|
struct pm_node *block;
|
2775
3408
|
|
2776
|
-
/**
|
3409
|
+
/**
|
3410
|
+
* IndexOperatorWriteNode#operator
|
3411
|
+
*/
|
2777
3412
|
pm_constant_id_t operator;
|
2778
3413
|
|
2779
|
-
/**
|
3414
|
+
/**
|
3415
|
+
* IndexOperatorWriteNode#operator_loc
|
3416
|
+
*/
|
2780
3417
|
pm_location_t operator_loc;
|
2781
3418
|
|
2782
|
-
/**
|
3419
|
+
/**
|
3420
|
+
* IndexOperatorWriteNode#value
|
3421
|
+
*/
|
2783
3422
|
struct pm_node *value;
|
2784
3423
|
} pm_index_operator_write_node_t;
|
2785
3424
|
|
@@ -2791,6 +3430,7 @@ typedef struct pm_index_operator_write_node {
|
|
2791
3430
|
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
2792
3431
|
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
2793
3432
|
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
3433
|
+
* PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
|
2794
3434
|
*
|
2795
3435
|
* @extends pm_node_t
|
2796
3436
|
*/
|
@@ -2798,28 +3438,44 @@ typedef struct pm_index_or_write_node {
|
|
2798
3438
|
/** The embedded base node. */
|
2799
3439
|
pm_node_t base;
|
2800
3440
|
|
2801
|
-
/**
|
3441
|
+
/**
|
3442
|
+
* IndexOrWriteNode#receiver
|
3443
|
+
*/
|
2802
3444
|
struct pm_node *receiver;
|
2803
3445
|
|
2804
|
-
/**
|
3446
|
+
/**
|
3447
|
+
* IndexOrWriteNode#call_operator_loc
|
3448
|
+
*/
|
2805
3449
|
pm_location_t call_operator_loc;
|
2806
3450
|
|
2807
|
-
/**
|
3451
|
+
/**
|
3452
|
+
* IndexOrWriteNode#opening_loc
|
3453
|
+
*/
|
2808
3454
|
pm_location_t opening_loc;
|
2809
3455
|
|
2810
|
-
/**
|
3456
|
+
/**
|
3457
|
+
* IndexOrWriteNode#arguments
|
3458
|
+
*/
|
2811
3459
|
struct pm_arguments_node *arguments;
|
2812
3460
|
|
2813
|
-
/**
|
3461
|
+
/**
|
3462
|
+
* IndexOrWriteNode#closing_loc
|
3463
|
+
*/
|
2814
3464
|
pm_location_t closing_loc;
|
2815
3465
|
|
2816
|
-
/**
|
3466
|
+
/**
|
3467
|
+
* IndexOrWriteNode#block
|
3468
|
+
*/
|
2817
3469
|
struct pm_node *block;
|
2818
3470
|
|
2819
|
-
/**
|
3471
|
+
/**
|
3472
|
+
* IndexOrWriteNode#operator_loc
|
3473
|
+
*/
|
2820
3474
|
pm_location_t operator_loc;
|
2821
3475
|
|
2822
|
-
/**
|
3476
|
+
/**
|
3477
|
+
* IndexOrWriteNode#value
|
3478
|
+
*/
|
2823
3479
|
struct pm_node *value;
|
2824
3480
|
} pm_index_or_write_node_t;
|
2825
3481
|
|
@@ -2831,6 +3487,7 @@ typedef struct pm_index_or_write_node {
|
|
2831
3487
|
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
2832
3488
|
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
2833
3489
|
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
3490
|
+
* PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
|
2834
3491
|
*
|
2835
3492
|
* @extends pm_node_t
|
2836
3493
|
*/
|
@@ -2838,19 +3495,29 @@ typedef struct pm_index_target_node {
|
|
2838
3495
|
/** The embedded base node. */
|
2839
3496
|
pm_node_t base;
|
2840
3497
|
|
2841
|
-
/**
|
3498
|
+
/**
|
3499
|
+
* IndexTargetNode#receiver
|
3500
|
+
*/
|
2842
3501
|
struct pm_node *receiver;
|
2843
3502
|
|
2844
|
-
/**
|
3503
|
+
/**
|
3504
|
+
* IndexTargetNode#opening_loc
|
3505
|
+
*/
|
2845
3506
|
pm_location_t opening_loc;
|
2846
3507
|
|
2847
|
-
/**
|
3508
|
+
/**
|
3509
|
+
* IndexTargetNode#arguments
|
3510
|
+
*/
|
2848
3511
|
struct pm_arguments_node *arguments;
|
2849
3512
|
|
2850
|
-
/**
|
3513
|
+
/**
|
3514
|
+
* IndexTargetNode#closing_loc
|
3515
|
+
*/
|
2851
3516
|
pm_location_t closing_loc;
|
2852
3517
|
|
2853
|
-
/**
|
3518
|
+
/**
|
3519
|
+
* IndexTargetNode#block
|
3520
|
+
*/
|
2854
3521
|
struct pm_node *block;
|
2855
3522
|
} pm_index_target_node_t;
|
2856
3523
|
|
@@ -2865,16 +3532,24 @@ typedef struct pm_instance_variable_and_write_node {
|
|
2865
3532
|
/** The embedded base node. */
|
2866
3533
|
pm_node_t base;
|
2867
3534
|
|
2868
|
-
/**
|
3535
|
+
/**
|
3536
|
+
* InstanceVariableAndWriteNode#name
|
3537
|
+
*/
|
2869
3538
|
pm_constant_id_t name;
|
2870
3539
|
|
2871
|
-
/**
|
3540
|
+
/**
|
3541
|
+
* InstanceVariableAndWriteNode#name_loc
|
3542
|
+
*/
|
2872
3543
|
pm_location_t name_loc;
|
2873
3544
|
|
2874
|
-
/**
|
3545
|
+
/**
|
3546
|
+
* InstanceVariableAndWriteNode#operator_loc
|
3547
|
+
*/
|
2875
3548
|
pm_location_t operator_loc;
|
2876
3549
|
|
2877
|
-
/**
|
3550
|
+
/**
|
3551
|
+
* InstanceVariableAndWriteNode#value
|
3552
|
+
*/
|
2878
3553
|
struct pm_node *value;
|
2879
3554
|
} pm_instance_variable_and_write_node_t;
|
2880
3555
|
|
@@ -2889,19 +3564,29 @@ typedef struct pm_instance_variable_operator_write_node {
|
|
2889
3564
|
/** The embedded base node. */
|
2890
3565
|
pm_node_t base;
|
2891
3566
|
|
2892
|
-
/**
|
3567
|
+
/**
|
3568
|
+
* InstanceVariableOperatorWriteNode#name
|
3569
|
+
*/
|
2893
3570
|
pm_constant_id_t name;
|
2894
3571
|
|
2895
|
-
/**
|
3572
|
+
/**
|
3573
|
+
* InstanceVariableOperatorWriteNode#name_loc
|
3574
|
+
*/
|
2896
3575
|
pm_location_t name_loc;
|
2897
3576
|
|
2898
|
-
/**
|
3577
|
+
/**
|
3578
|
+
* InstanceVariableOperatorWriteNode#operator_loc
|
3579
|
+
*/
|
2899
3580
|
pm_location_t operator_loc;
|
2900
3581
|
|
2901
|
-
/**
|
3582
|
+
/**
|
3583
|
+
* InstanceVariableOperatorWriteNode#value
|
3584
|
+
*/
|
2902
3585
|
struct pm_node *value;
|
2903
3586
|
|
2904
|
-
/**
|
3587
|
+
/**
|
3588
|
+
* InstanceVariableOperatorWriteNode#operator
|
3589
|
+
*/
|
2905
3590
|
pm_constant_id_t operator;
|
2906
3591
|
} pm_instance_variable_operator_write_node_t;
|
2907
3592
|
|
@@ -2916,16 +3601,24 @@ typedef struct pm_instance_variable_or_write_node {
|
|
2916
3601
|
/** The embedded base node. */
|
2917
3602
|
pm_node_t base;
|
2918
3603
|
|
2919
|
-
/**
|
3604
|
+
/**
|
3605
|
+
* InstanceVariableOrWriteNode#name
|
3606
|
+
*/
|
2920
3607
|
pm_constant_id_t name;
|
2921
3608
|
|
2922
|
-
/**
|
3609
|
+
/**
|
3610
|
+
* InstanceVariableOrWriteNode#name_loc
|
3611
|
+
*/
|
2923
3612
|
pm_location_t name_loc;
|
2924
3613
|
|
2925
|
-
/**
|
3614
|
+
/**
|
3615
|
+
* InstanceVariableOrWriteNode#operator_loc
|
3616
|
+
*/
|
2926
3617
|
pm_location_t operator_loc;
|
2927
3618
|
|
2928
|
-
/**
|
3619
|
+
/**
|
3620
|
+
* InstanceVariableOrWriteNode#value
|
3621
|
+
*/
|
2929
3622
|
struct pm_node *value;
|
2930
3623
|
} pm_instance_variable_or_write_node_t;
|
2931
3624
|
|
@@ -2940,7 +3633,15 @@ typedef struct pm_instance_variable_read_node {
|
|
2940
3633
|
/** The embedded base node. */
|
2941
3634
|
pm_node_t base;
|
2942
3635
|
|
2943
|
-
/**
|
3636
|
+
/**
|
3637
|
+
* InstanceVariableReadNode#name
|
3638
|
+
*
|
3639
|
+
* The name of the instance variable, which is a `@` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
|
3640
|
+
*
|
3641
|
+
* @x # name `:@x`
|
3642
|
+
*
|
3643
|
+
* @_test # name `:@_test`
|
3644
|
+
*/
|
2944
3645
|
pm_constant_id_t name;
|
2945
3646
|
} pm_instance_variable_read_node_t;
|
2946
3647
|
|
@@ -2955,7 +3656,9 @@ typedef struct pm_instance_variable_target_node {
|
|
2955
3656
|
/** The embedded base node. */
|
2956
3657
|
pm_node_t base;
|
2957
3658
|
|
2958
|
-
/**
|
3659
|
+
/**
|
3660
|
+
* InstanceVariableTargetNode#name
|
3661
|
+
*/
|
2959
3662
|
pm_constant_id_t name;
|
2960
3663
|
} pm_instance_variable_target_node_t;
|
2961
3664
|
|
@@ -2970,16 +3673,24 @@ typedef struct pm_instance_variable_write_node {
|
|
2970
3673
|
/** The embedded base node. */
|
2971
3674
|
pm_node_t base;
|
2972
3675
|
|
2973
|
-
/**
|
3676
|
+
/**
|
3677
|
+
* InstanceVariableWriteNode#name
|
3678
|
+
*/
|
2974
3679
|
pm_constant_id_t name;
|
2975
3680
|
|
2976
|
-
/**
|
3681
|
+
/**
|
3682
|
+
* InstanceVariableWriteNode#name_loc
|
3683
|
+
*/
|
2977
3684
|
pm_location_t name_loc;
|
2978
3685
|
|
2979
|
-
/**
|
3686
|
+
/**
|
3687
|
+
* InstanceVariableWriteNode#value
|
3688
|
+
*/
|
2980
3689
|
struct pm_node *value;
|
2981
3690
|
|
2982
|
-
/**
|
3691
|
+
/**
|
3692
|
+
* InstanceVariableWriteNode#operator_loc
|
3693
|
+
*/
|
2983
3694
|
pm_location_t operator_loc;
|
2984
3695
|
} pm_instance_variable_write_node_t;
|
2985
3696
|
|
@@ -3023,13 +3734,19 @@ typedef struct pm_interpolated_match_last_line_node {
|
|
3023
3734
|
/** The embedded base node. */
|
3024
3735
|
pm_node_t base;
|
3025
3736
|
|
3026
|
-
/**
|
3737
|
+
/**
|
3738
|
+
* InterpolatedMatchLastLineNode#opening_loc
|
3739
|
+
*/
|
3027
3740
|
pm_location_t opening_loc;
|
3028
3741
|
|
3029
|
-
/**
|
3742
|
+
/**
|
3743
|
+
* InterpolatedMatchLastLineNode#parts
|
3744
|
+
*/
|
3030
3745
|
struct pm_node_list parts;
|
3031
3746
|
|
3032
|
-
/**
|
3747
|
+
/**
|
3748
|
+
* InterpolatedMatchLastLineNode#closing_loc
|
3749
|
+
*/
|
3033
3750
|
pm_location_t closing_loc;
|
3034
3751
|
} pm_interpolated_match_last_line_node_t;
|
3035
3752
|
|
@@ -3056,13 +3773,19 @@ typedef struct pm_interpolated_regular_expression_node {
|
|
3056
3773
|
/** The embedded base node. */
|
3057
3774
|
pm_node_t base;
|
3058
3775
|
|
3059
|
-
/**
|
3776
|
+
/**
|
3777
|
+
* InterpolatedRegularExpressionNode#opening_loc
|
3778
|
+
*/
|
3060
3779
|
pm_location_t opening_loc;
|
3061
3780
|
|
3062
|
-
/**
|
3781
|
+
/**
|
3782
|
+
* InterpolatedRegularExpressionNode#parts
|
3783
|
+
*/
|
3063
3784
|
struct pm_node_list parts;
|
3064
3785
|
|
3065
|
-
/**
|
3786
|
+
/**
|
3787
|
+
* InterpolatedRegularExpressionNode#closing_loc
|
3788
|
+
*/
|
3066
3789
|
pm_location_t closing_loc;
|
3067
3790
|
} pm_interpolated_regular_expression_node_t;
|
3068
3791
|
|
@@ -3077,13 +3800,19 @@ typedef struct pm_interpolated_string_node {
|
|
3077
3800
|
/** The embedded base node. */
|
3078
3801
|
pm_node_t base;
|
3079
3802
|
|
3080
|
-
/**
|
3803
|
+
/**
|
3804
|
+
* InterpolatedStringNode#opening_loc
|
3805
|
+
*/
|
3081
3806
|
pm_location_t opening_loc;
|
3082
3807
|
|
3083
|
-
/**
|
3808
|
+
/**
|
3809
|
+
* InterpolatedStringNode#parts
|
3810
|
+
*/
|
3084
3811
|
struct pm_node_list parts;
|
3085
3812
|
|
3086
|
-
/**
|
3813
|
+
/**
|
3814
|
+
* InterpolatedStringNode#closing_loc
|
3815
|
+
*/
|
3087
3816
|
pm_location_t closing_loc;
|
3088
3817
|
} pm_interpolated_string_node_t;
|
3089
3818
|
|
@@ -3098,13 +3827,19 @@ typedef struct pm_interpolated_symbol_node {
|
|
3098
3827
|
/** The embedded base node. */
|
3099
3828
|
pm_node_t base;
|
3100
3829
|
|
3101
|
-
/**
|
3830
|
+
/**
|
3831
|
+
* InterpolatedSymbolNode#opening_loc
|
3832
|
+
*/
|
3102
3833
|
pm_location_t opening_loc;
|
3103
3834
|
|
3104
|
-
/**
|
3835
|
+
/**
|
3836
|
+
* InterpolatedSymbolNode#parts
|
3837
|
+
*/
|
3105
3838
|
struct pm_node_list parts;
|
3106
3839
|
|
3107
|
-
/**
|
3840
|
+
/**
|
3841
|
+
* InterpolatedSymbolNode#closing_loc
|
3842
|
+
*/
|
3108
3843
|
pm_location_t closing_loc;
|
3109
3844
|
} pm_interpolated_symbol_node_t;
|
3110
3845
|
|
@@ -3119,13 +3854,19 @@ typedef struct pm_interpolated_x_string_node {
|
|
3119
3854
|
/** The embedded base node. */
|
3120
3855
|
pm_node_t base;
|
3121
3856
|
|
3122
|
-
/**
|
3857
|
+
/**
|
3858
|
+
* InterpolatedXStringNode#opening_loc
|
3859
|
+
*/
|
3123
3860
|
pm_location_t opening_loc;
|
3124
3861
|
|
3125
|
-
/**
|
3862
|
+
/**
|
3863
|
+
* InterpolatedXStringNode#parts
|
3864
|
+
*/
|
3126
3865
|
struct pm_node_list parts;
|
3127
3866
|
|
3128
|
-
/**
|
3867
|
+
/**
|
3868
|
+
* InterpolatedXStringNode#closing_loc
|
3869
|
+
*/
|
3129
3870
|
pm_location_t closing_loc;
|
3130
3871
|
} pm_interpolated_x_string_node_t;
|
3131
3872
|
|
@@ -3134,7 +3875,7 @@ typedef struct pm_interpolated_x_string_node {
|
|
3134
3875
|
*
|
3135
3876
|
* Type: PM_KEYWORD_HASH_NODE
|
3136
3877
|
* Flags:
|
3137
|
-
*
|
3878
|
+
* PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS
|
3138
3879
|
*
|
3139
3880
|
* @extends pm_node_t
|
3140
3881
|
*/
|
@@ -3142,7 +3883,9 @@ typedef struct pm_keyword_hash_node {
|
|
3142
3883
|
/** The embedded base node. */
|
3143
3884
|
pm_node_t base;
|
3144
3885
|
|
3145
|
-
/**
|
3886
|
+
/**
|
3887
|
+
* KeywordHashNode#elements
|
3888
|
+
*/
|
3146
3889
|
struct pm_node_list elements;
|
3147
3890
|
} pm_keyword_hash_node_t;
|
3148
3891
|
|
@@ -3150,6 +3893,8 @@ typedef struct pm_keyword_hash_node {
|
|
3150
3893
|
* KeywordRestParameterNode
|
3151
3894
|
*
|
3152
3895
|
* Type: PM_KEYWORD_REST_PARAMETER_NODE
|
3896
|
+
* Flags:
|
3897
|
+
* PM_PARAMETER_FLAGS_REPEATED_PARAMETER
|
3153
3898
|
*
|
3154
3899
|
* @extends pm_node_t
|
3155
3900
|
*/
|
@@ -3157,13 +3902,19 @@ typedef struct pm_keyword_rest_parameter_node {
|
|
3157
3902
|
/** The embedded base node. */
|
3158
3903
|
pm_node_t base;
|
3159
3904
|
|
3160
|
-
/**
|
3905
|
+
/**
|
3906
|
+
* KeywordRestParameterNode#name
|
3907
|
+
*/
|
3161
3908
|
pm_constant_id_t name;
|
3162
3909
|
|
3163
|
-
/**
|
3910
|
+
/**
|
3911
|
+
* KeywordRestParameterNode#name_loc
|
3912
|
+
*/
|
3164
3913
|
pm_location_t name_loc;
|
3165
3914
|
|
3166
|
-
/**
|
3915
|
+
/**
|
3916
|
+
* KeywordRestParameterNode#operator_loc
|
3917
|
+
*/
|
3167
3918
|
pm_location_t operator_loc;
|
3168
3919
|
} pm_keyword_rest_parameter_node_t;
|
3169
3920
|
|
@@ -3178,25 +3929,34 @@ typedef struct pm_lambda_node {
|
|
3178
3929
|
/** The embedded base node. */
|
3179
3930
|
pm_node_t base;
|
3180
3931
|
|
3181
|
-
/**
|
3932
|
+
/**
|
3933
|
+
* LambdaNode#locals
|
3934
|
+
*/
|
3182
3935
|
pm_constant_id_list_t locals;
|
3183
3936
|
|
3184
|
-
/**
|
3185
|
-
|
3186
|
-
|
3187
|
-
/** LambdaNode#operator_loc */
|
3937
|
+
/**
|
3938
|
+
* LambdaNode#operator_loc
|
3939
|
+
*/
|
3188
3940
|
pm_location_t operator_loc;
|
3189
3941
|
|
3190
|
-
/**
|
3942
|
+
/**
|
3943
|
+
* LambdaNode#opening_loc
|
3944
|
+
*/
|
3191
3945
|
pm_location_t opening_loc;
|
3192
3946
|
|
3193
|
-
/**
|
3947
|
+
/**
|
3948
|
+
* LambdaNode#closing_loc
|
3949
|
+
*/
|
3194
3950
|
pm_location_t closing_loc;
|
3195
3951
|
|
3196
|
-
/**
|
3952
|
+
/**
|
3953
|
+
* LambdaNode#parameters
|
3954
|
+
*/
|
3197
3955
|
struct pm_node *parameters;
|
3198
3956
|
|
3199
|
-
/**
|
3957
|
+
/**
|
3958
|
+
* LambdaNode#body
|
3959
|
+
*/
|
3200
3960
|
struct pm_node *body;
|
3201
3961
|
} pm_lambda_node_t;
|
3202
3962
|
|
@@ -3211,19 +3971,29 @@ typedef struct pm_local_variable_and_write_node {
|
|
3211
3971
|
/** The embedded base node. */
|
3212
3972
|
pm_node_t base;
|
3213
3973
|
|
3214
|
-
/**
|
3974
|
+
/**
|
3975
|
+
* LocalVariableAndWriteNode#name_loc
|
3976
|
+
*/
|
3215
3977
|
pm_location_t name_loc;
|
3216
3978
|
|
3217
|
-
/**
|
3979
|
+
/**
|
3980
|
+
* LocalVariableAndWriteNode#operator_loc
|
3981
|
+
*/
|
3218
3982
|
pm_location_t operator_loc;
|
3219
3983
|
|
3220
|
-
/**
|
3984
|
+
/**
|
3985
|
+
* LocalVariableAndWriteNode#value
|
3986
|
+
*/
|
3221
3987
|
struct pm_node *value;
|
3222
3988
|
|
3223
|
-
/**
|
3989
|
+
/**
|
3990
|
+
* LocalVariableAndWriteNode#name
|
3991
|
+
*/
|
3224
3992
|
pm_constant_id_t name;
|
3225
3993
|
|
3226
|
-
/**
|
3994
|
+
/**
|
3995
|
+
* LocalVariableAndWriteNode#depth
|
3996
|
+
*/
|
3227
3997
|
uint32_t depth;
|
3228
3998
|
} pm_local_variable_and_write_node_t;
|
3229
3999
|
|
@@ -3238,22 +4008,34 @@ typedef struct pm_local_variable_operator_write_node {
|
|
3238
4008
|
/** The embedded base node. */
|
3239
4009
|
pm_node_t base;
|
3240
4010
|
|
3241
|
-
/**
|
4011
|
+
/**
|
4012
|
+
* LocalVariableOperatorWriteNode#name_loc
|
4013
|
+
*/
|
3242
4014
|
pm_location_t name_loc;
|
3243
4015
|
|
3244
|
-
/**
|
4016
|
+
/**
|
4017
|
+
* LocalVariableOperatorWriteNode#operator_loc
|
4018
|
+
*/
|
3245
4019
|
pm_location_t operator_loc;
|
3246
4020
|
|
3247
|
-
/**
|
4021
|
+
/**
|
4022
|
+
* LocalVariableOperatorWriteNode#value
|
4023
|
+
*/
|
3248
4024
|
struct pm_node *value;
|
3249
4025
|
|
3250
|
-
/**
|
4026
|
+
/**
|
4027
|
+
* LocalVariableOperatorWriteNode#name
|
4028
|
+
*/
|
3251
4029
|
pm_constant_id_t name;
|
3252
4030
|
|
3253
|
-
/**
|
4031
|
+
/**
|
4032
|
+
* LocalVariableOperatorWriteNode#operator
|
4033
|
+
*/
|
3254
4034
|
pm_constant_id_t operator;
|
3255
4035
|
|
3256
|
-
/**
|
4036
|
+
/**
|
4037
|
+
* LocalVariableOperatorWriteNode#depth
|
4038
|
+
*/
|
3257
4039
|
uint32_t depth;
|
3258
4040
|
} pm_local_variable_operator_write_node_t;
|
3259
4041
|
|
@@ -3268,19 +4050,29 @@ typedef struct pm_local_variable_or_write_node {
|
|
3268
4050
|
/** The embedded base node. */
|
3269
4051
|
pm_node_t base;
|
3270
4052
|
|
3271
|
-
/**
|
4053
|
+
/**
|
4054
|
+
* LocalVariableOrWriteNode#name_loc
|
4055
|
+
*/
|
3272
4056
|
pm_location_t name_loc;
|
3273
4057
|
|
3274
|
-
/**
|
4058
|
+
/**
|
4059
|
+
* LocalVariableOrWriteNode#operator_loc
|
4060
|
+
*/
|
3275
4061
|
pm_location_t operator_loc;
|
3276
4062
|
|
3277
|
-
/**
|
4063
|
+
/**
|
4064
|
+
* LocalVariableOrWriteNode#value
|
4065
|
+
*/
|
3278
4066
|
struct pm_node *value;
|
3279
4067
|
|
3280
|
-
/**
|
4068
|
+
/**
|
4069
|
+
* LocalVariableOrWriteNode#name
|
4070
|
+
*/
|
3281
4071
|
pm_constant_id_t name;
|
3282
4072
|
|
3283
|
-
/**
|
4073
|
+
/**
|
4074
|
+
* LocalVariableOrWriteNode#depth
|
4075
|
+
*/
|
3284
4076
|
uint32_t depth;
|
3285
4077
|
} pm_local_variable_or_write_node_t;
|
3286
4078
|
|
@@ -3295,10 +4087,36 @@ typedef struct pm_local_variable_read_node {
|
|
3295
4087
|
/** The embedded base node. */
|
3296
4088
|
pm_node_t base;
|
3297
4089
|
|
3298
|
-
/**
|
4090
|
+
/**
|
4091
|
+
* LocalVariableReadNode#name
|
4092
|
+
*
|
4093
|
+
* The name of the local variable, which is an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
|
4094
|
+
*
|
4095
|
+
* x # name `:x`
|
4096
|
+
*
|
4097
|
+
* _Test # name `:_Test`
|
4098
|
+
*
|
4099
|
+
* Note that this can also be an underscore followed by a number for the default block parameters.
|
4100
|
+
*
|
4101
|
+
* _1 # name `:_1`
|
4102
|
+
*
|
4103
|
+
* Finally, for the default `it` block parameter, the name is `0it`. This is to distinguish it from an `it` local variable that is explicitly declared.
|
4104
|
+
*
|
4105
|
+
* it # name `:0it`
|
4106
|
+
*/
|
3299
4107
|
pm_constant_id_t name;
|
3300
4108
|
|
3301
|
-
/**
|
4109
|
+
/**
|
4110
|
+
* LocalVariableReadNode#depth
|
4111
|
+
*
|
4112
|
+
* The number of visible scopes that should be searched to find the origin of this local variable.
|
4113
|
+
*
|
4114
|
+
* foo = 1; foo # depth 0
|
4115
|
+
*
|
4116
|
+
* bar = 2; tap { bar } # depth 1
|
4117
|
+
*
|
4118
|
+
* The specific rules for calculating the depth may differ from individual Ruby implementations, as they are not specified by the language. For more information, see [the Prism documentation](https://github.com/ruby/prism/blob/main/docs/local_variable_depth.md).
|
4119
|
+
*/
|
3302
4120
|
uint32_t depth;
|
3303
4121
|
} pm_local_variable_read_node_t;
|
3304
4122
|
|
@@ -3313,10 +4131,14 @@ typedef struct pm_local_variable_target_node {
|
|
3313
4131
|
/** The embedded base node. */
|
3314
4132
|
pm_node_t base;
|
3315
4133
|
|
3316
|
-
/**
|
4134
|
+
/**
|
4135
|
+
* LocalVariableTargetNode#name
|
4136
|
+
*/
|
3317
4137
|
pm_constant_id_t name;
|
3318
4138
|
|
3319
|
-
/**
|
4139
|
+
/**
|
4140
|
+
* LocalVariableTargetNode#depth
|
4141
|
+
*/
|
3320
4142
|
uint32_t depth;
|
3321
4143
|
} pm_local_variable_target_node_t;
|
3322
4144
|
|
@@ -3331,19 +4153,29 @@ typedef struct pm_local_variable_write_node {
|
|
3331
4153
|
/** The embedded base node. */
|
3332
4154
|
pm_node_t base;
|
3333
4155
|
|
3334
|
-
/**
|
4156
|
+
/**
|
4157
|
+
* LocalVariableWriteNode#name
|
4158
|
+
*/
|
3335
4159
|
pm_constant_id_t name;
|
3336
4160
|
|
3337
|
-
/**
|
4161
|
+
/**
|
4162
|
+
* LocalVariableWriteNode#depth
|
4163
|
+
*/
|
3338
4164
|
uint32_t depth;
|
3339
4165
|
|
3340
|
-
/**
|
4166
|
+
/**
|
4167
|
+
* LocalVariableWriteNode#name_loc
|
4168
|
+
*/
|
3341
4169
|
pm_location_t name_loc;
|
3342
4170
|
|
3343
|
-
/**
|
4171
|
+
/**
|
4172
|
+
* LocalVariableWriteNode#value
|
4173
|
+
*/
|
3344
4174
|
struct pm_node *value;
|
3345
4175
|
|
3346
|
-
/**
|
4176
|
+
/**
|
4177
|
+
* LocalVariableWriteNode#operator_loc
|
4178
|
+
*/
|
3347
4179
|
pm_location_t operator_loc;
|
3348
4180
|
} pm_local_variable_write_node_t;
|
3349
4181
|
|
@@ -3370,16 +4202,24 @@ typedef struct pm_match_last_line_node {
|
|
3370
4202
|
/** The embedded base node. */
|
3371
4203
|
pm_node_t base;
|
3372
4204
|
|
3373
|
-
/**
|
4205
|
+
/**
|
4206
|
+
* MatchLastLineNode#opening_loc
|
4207
|
+
*/
|
3374
4208
|
pm_location_t opening_loc;
|
3375
4209
|
|
3376
|
-
/**
|
4210
|
+
/**
|
4211
|
+
* MatchLastLineNode#content_loc
|
4212
|
+
*/
|
3377
4213
|
pm_location_t content_loc;
|
3378
4214
|
|
3379
|
-
/**
|
4215
|
+
/**
|
4216
|
+
* MatchLastLineNode#closing_loc
|
4217
|
+
*/
|
3380
4218
|
pm_location_t closing_loc;
|
3381
4219
|
|
3382
|
-
/**
|
4220
|
+
/**
|
4221
|
+
* MatchLastLineNode#unescaped
|
4222
|
+
*/
|
3383
4223
|
pm_string_t unescaped;
|
3384
4224
|
} pm_match_last_line_node_t;
|
3385
4225
|
|
@@ -3394,13 +4234,19 @@ typedef struct pm_match_predicate_node {
|
|
3394
4234
|
/** The embedded base node. */
|
3395
4235
|
pm_node_t base;
|
3396
4236
|
|
3397
|
-
/**
|
4237
|
+
/**
|
4238
|
+
* MatchPredicateNode#value
|
4239
|
+
*/
|
3398
4240
|
struct pm_node *value;
|
3399
4241
|
|
3400
|
-
/**
|
4242
|
+
/**
|
4243
|
+
* MatchPredicateNode#pattern
|
4244
|
+
*/
|
3401
4245
|
struct pm_node *pattern;
|
3402
4246
|
|
3403
|
-
/**
|
4247
|
+
/**
|
4248
|
+
* MatchPredicateNode#operator_loc
|
4249
|
+
*/
|
3404
4250
|
pm_location_t operator_loc;
|
3405
4251
|
} pm_match_predicate_node_t;
|
3406
4252
|
|
@@ -3415,13 +4261,19 @@ typedef struct pm_match_required_node {
|
|
3415
4261
|
/** The embedded base node. */
|
3416
4262
|
pm_node_t base;
|
3417
4263
|
|
3418
|
-
/**
|
4264
|
+
/**
|
4265
|
+
* MatchRequiredNode#value
|
4266
|
+
*/
|
3419
4267
|
struct pm_node *value;
|
3420
4268
|
|
3421
|
-
/**
|
4269
|
+
/**
|
4270
|
+
* MatchRequiredNode#pattern
|
4271
|
+
*/
|
3422
4272
|
struct pm_node *pattern;
|
3423
4273
|
|
3424
|
-
/**
|
4274
|
+
/**
|
4275
|
+
* MatchRequiredNode#operator_loc
|
4276
|
+
*/
|
3425
4277
|
pm_location_t operator_loc;
|
3426
4278
|
} pm_match_required_node_t;
|
3427
4279
|
|
@@ -3436,10 +4288,14 @@ typedef struct pm_match_write_node {
|
|
3436
4288
|
/** The embedded base node. */
|
3437
4289
|
pm_node_t base;
|
3438
4290
|
|
3439
|
-
/**
|
4291
|
+
/**
|
4292
|
+
* MatchWriteNode#call
|
4293
|
+
*/
|
3440
4294
|
struct pm_call_node *call;
|
3441
4295
|
|
3442
|
-
/**
|
4296
|
+
/**
|
4297
|
+
* MatchWriteNode#targets
|
4298
|
+
*/
|
3443
4299
|
struct pm_node_list targets;
|
3444
4300
|
} pm_match_write_node_t;
|
3445
4301
|
|
@@ -3466,22 +4322,34 @@ typedef struct pm_module_node {
|
|
3466
4322
|
/** The embedded base node. */
|
3467
4323
|
pm_node_t base;
|
3468
4324
|
|
3469
|
-
/**
|
4325
|
+
/**
|
4326
|
+
* ModuleNode#locals
|
4327
|
+
*/
|
3470
4328
|
pm_constant_id_list_t locals;
|
3471
4329
|
|
3472
|
-
/**
|
4330
|
+
/**
|
4331
|
+
* ModuleNode#module_keyword_loc
|
4332
|
+
*/
|
3473
4333
|
pm_location_t module_keyword_loc;
|
3474
4334
|
|
3475
|
-
/**
|
4335
|
+
/**
|
4336
|
+
* ModuleNode#constant_path
|
4337
|
+
*/
|
3476
4338
|
struct pm_node *constant_path;
|
3477
4339
|
|
3478
|
-
/**
|
4340
|
+
/**
|
4341
|
+
* ModuleNode#body
|
4342
|
+
*/
|
3479
4343
|
struct pm_node *body;
|
3480
4344
|
|
3481
|
-
/**
|
4345
|
+
/**
|
4346
|
+
* ModuleNode#end_keyword_loc
|
4347
|
+
*/
|
3482
4348
|
pm_location_t end_keyword_loc;
|
3483
4349
|
|
3484
|
-
/**
|
4350
|
+
/**
|
4351
|
+
* ModuleNode#name
|
4352
|
+
*/
|
3485
4353
|
pm_constant_id_t name;
|
3486
4354
|
} pm_module_node_t;
|
3487
4355
|
|
@@ -3496,19 +4364,29 @@ typedef struct pm_multi_target_node {
|
|
3496
4364
|
/** The embedded base node. */
|
3497
4365
|
pm_node_t base;
|
3498
4366
|
|
3499
|
-
/**
|
4367
|
+
/**
|
4368
|
+
* MultiTargetNode#lefts
|
4369
|
+
*/
|
3500
4370
|
struct pm_node_list lefts;
|
3501
4371
|
|
3502
|
-
/**
|
4372
|
+
/**
|
4373
|
+
* MultiTargetNode#rest
|
4374
|
+
*/
|
3503
4375
|
struct pm_node *rest;
|
3504
4376
|
|
3505
|
-
/**
|
4377
|
+
/**
|
4378
|
+
* MultiTargetNode#rights
|
4379
|
+
*/
|
3506
4380
|
struct pm_node_list rights;
|
3507
4381
|
|
3508
|
-
/**
|
4382
|
+
/**
|
4383
|
+
* MultiTargetNode#lparen_loc
|
4384
|
+
*/
|
3509
4385
|
pm_location_t lparen_loc;
|
3510
4386
|
|
3511
|
-
/**
|
4387
|
+
/**
|
4388
|
+
* MultiTargetNode#rparen_loc
|
4389
|
+
*/
|
3512
4390
|
pm_location_t rparen_loc;
|
3513
4391
|
} pm_multi_target_node_t;
|
3514
4392
|
|
@@ -3523,25 +4401,39 @@ typedef struct pm_multi_write_node {
|
|
3523
4401
|
/** The embedded base node. */
|
3524
4402
|
pm_node_t base;
|
3525
4403
|
|
3526
|
-
/**
|
4404
|
+
/**
|
4405
|
+
* MultiWriteNode#lefts
|
4406
|
+
*/
|
3527
4407
|
struct pm_node_list lefts;
|
3528
4408
|
|
3529
|
-
/**
|
4409
|
+
/**
|
4410
|
+
* MultiWriteNode#rest
|
4411
|
+
*/
|
3530
4412
|
struct pm_node *rest;
|
3531
4413
|
|
3532
|
-
/**
|
4414
|
+
/**
|
4415
|
+
* MultiWriteNode#rights
|
4416
|
+
*/
|
3533
4417
|
struct pm_node_list rights;
|
3534
4418
|
|
3535
|
-
/**
|
4419
|
+
/**
|
4420
|
+
* MultiWriteNode#lparen_loc
|
4421
|
+
*/
|
3536
4422
|
pm_location_t lparen_loc;
|
3537
4423
|
|
3538
|
-
/**
|
4424
|
+
/**
|
4425
|
+
* MultiWriteNode#rparen_loc
|
4426
|
+
*/
|
3539
4427
|
pm_location_t rparen_loc;
|
3540
4428
|
|
3541
|
-
/**
|
4429
|
+
/**
|
4430
|
+
* MultiWriteNode#operator_loc
|
4431
|
+
*/
|
3542
4432
|
pm_location_t operator_loc;
|
3543
4433
|
|
3544
|
-
/**
|
4434
|
+
/**
|
4435
|
+
* MultiWriteNode#value
|
4436
|
+
*/
|
3545
4437
|
struct pm_node *value;
|
3546
4438
|
} pm_multi_write_node_t;
|
3547
4439
|
|
@@ -3556,10 +4448,14 @@ typedef struct pm_next_node {
|
|
3556
4448
|
/** The embedded base node. */
|
3557
4449
|
pm_node_t base;
|
3558
4450
|
|
3559
|
-
/**
|
4451
|
+
/**
|
4452
|
+
* NextNode#arguments
|
4453
|
+
*/
|
3560
4454
|
struct pm_arguments_node *arguments;
|
3561
4455
|
|
3562
|
-
/**
|
4456
|
+
/**
|
4457
|
+
* NextNode#keyword_loc
|
4458
|
+
*/
|
3563
4459
|
pm_location_t keyword_loc;
|
3564
4460
|
} pm_next_node_t;
|
3565
4461
|
|
@@ -3586,10 +4482,14 @@ typedef struct pm_no_keywords_parameter_node {
|
|
3586
4482
|
/** The embedded base node. */
|
3587
4483
|
pm_node_t base;
|
3588
4484
|
|
3589
|
-
/**
|
4485
|
+
/**
|
4486
|
+
* NoKeywordsParameterNode#operator_loc
|
4487
|
+
*/
|
3590
4488
|
pm_location_t operator_loc;
|
3591
4489
|
|
3592
|
-
/**
|
4490
|
+
/**
|
4491
|
+
* NoKeywordsParameterNode#keyword_loc
|
4492
|
+
*/
|
3593
4493
|
pm_location_t keyword_loc;
|
3594
4494
|
} pm_no_keywords_parameter_node_t;
|
3595
4495
|
|
@@ -3604,7 +4504,9 @@ typedef struct pm_numbered_parameters_node {
|
|
3604
4504
|
/** The embedded base node. */
|
3605
4505
|
pm_node_t base;
|
3606
4506
|
|
3607
|
-
/**
|
4507
|
+
/**
|
4508
|
+
* NumberedParametersNode#maximum
|
4509
|
+
*/
|
3608
4510
|
uint8_t maximum;
|
3609
4511
|
} pm_numbered_parameters_node_t;
|
3610
4512
|
|
@@ -3619,7 +4521,17 @@ typedef struct pm_numbered_reference_read_node {
|
|
3619
4521
|
/** The embedded base node. */
|
3620
4522
|
pm_node_t base;
|
3621
4523
|
|
3622
|
-
/**
|
4524
|
+
/**
|
4525
|
+
* NumberedReferenceReadNode#number
|
4526
|
+
*
|
4527
|
+
* The (1-indexed, from the left) number of the capture group. Numbered references that would overflow a `uint32` result in a `number` of exactly `2**32 - 1`.
|
4528
|
+
*
|
4529
|
+
* $1 # number `1`
|
4530
|
+
*
|
4531
|
+
* $5432 # number `5432`
|
4532
|
+
*
|
4533
|
+
* $4294967296 # number `4294967295`
|
4534
|
+
*/
|
3623
4535
|
uint32_t number;
|
3624
4536
|
} pm_numbered_reference_read_node_t;
|
3625
4537
|
|
@@ -3627,6 +4539,8 @@ typedef struct pm_numbered_reference_read_node {
|
|
3627
4539
|
* OptionalKeywordParameterNode
|
3628
4540
|
*
|
3629
4541
|
* Type: PM_OPTIONAL_KEYWORD_PARAMETER_NODE
|
4542
|
+
* Flags:
|
4543
|
+
* PM_PARAMETER_FLAGS_REPEATED_PARAMETER
|
3630
4544
|
*
|
3631
4545
|
* @extends pm_node_t
|
3632
4546
|
*/
|
@@ -3634,13 +4548,19 @@ typedef struct pm_optional_keyword_parameter_node {
|
|
3634
4548
|
/** The embedded base node. */
|
3635
4549
|
pm_node_t base;
|
3636
4550
|
|
3637
|
-
/**
|
4551
|
+
/**
|
4552
|
+
* OptionalKeywordParameterNode#name
|
4553
|
+
*/
|
3638
4554
|
pm_constant_id_t name;
|
3639
4555
|
|
3640
|
-
/**
|
4556
|
+
/**
|
4557
|
+
* OptionalKeywordParameterNode#name_loc
|
4558
|
+
*/
|
3641
4559
|
pm_location_t name_loc;
|
3642
4560
|
|
3643
|
-
/**
|
4561
|
+
/**
|
4562
|
+
* OptionalKeywordParameterNode#value
|
4563
|
+
*/
|
3644
4564
|
struct pm_node *value;
|
3645
4565
|
} pm_optional_keyword_parameter_node_t;
|
3646
4566
|
|
@@ -3648,6 +4568,8 @@ typedef struct pm_optional_keyword_parameter_node {
|
|
3648
4568
|
* OptionalParameterNode
|
3649
4569
|
*
|
3650
4570
|
* Type: PM_OPTIONAL_PARAMETER_NODE
|
4571
|
+
* Flags:
|
4572
|
+
* PM_PARAMETER_FLAGS_REPEATED_PARAMETER
|
3651
4573
|
*
|
3652
4574
|
* @extends pm_node_t
|
3653
4575
|
*/
|
@@ -3655,16 +4577,24 @@ typedef struct pm_optional_parameter_node {
|
|
3655
4577
|
/** The embedded base node. */
|
3656
4578
|
pm_node_t base;
|
3657
4579
|
|
3658
|
-
/**
|
4580
|
+
/**
|
4581
|
+
* OptionalParameterNode#name
|
4582
|
+
*/
|
3659
4583
|
pm_constant_id_t name;
|
3660
4584
|
|
3661
|
-
/**
|
4585
|
+
/**
|
4586
|
+
* OptionalParameterNode#name_loc
|
4587
|
+
*/
|
3662
4588
|
pm_location_t name_loc;
|
3663
4589
|
|
3664
|
-
/**
|
4590
|
+
/**
|
4591
|
+
* OptionalParameterNode#operator_loc
|
4592
|
+
*/
|
3665
4593
|
pm_location_t operator_loc;
|
3666
4594
|
|
3667
|
-
/**
|
4595
|
+
/**
|
4596
|
+
* OptionalParameterNode#value
|
4597
|
+
*/
|
3668
4598
|
struct pm_node *value;
|
3669
4599
|
} pm_optional_parameter_node_t;
|
3670
4600
|
|
@@ -3679,13 +4609,40 @@ typedef struct pm_or_node {
|
|
3679
4609
|
/** The embedded base node. */
|
3680
4610
|
pm_node_t base;
|
3681
4611
|
|
3682
|
-
/**
|
4612
|
+
/**
|
4613
|
+
* OrNode#left
|
4614
|
+
*
|
4615
|
+
* Represents the left side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
4616
|
+
*
|
4617
|
+
* left or right
|
4618
|
+
* ^^^^
|
4619
|
+
*
|
4620
|
+
* 1 || 2
|
4621
|
+
* ^
|
4622
|
+
*/
|
3683
4623
|
struct pm_node *left;
|
3684
4624
|
|
3685
|
-
/**
|
4625
|
+
/**
|
4626
|
+
* OrNode#right
|
4627
|
+
*
|
4628
|
+
* Represents the right side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
4629
|
+
*
|
4630
|
+
* left || right
|
4631
|
+
* ^^^^^
|
4632
|
+
*
|
4633
|
+
* 1 or 2
|
4634
|
+
* ^
|
4635
|
+
*/
|
3686
4636
|
struct pm_node *right;
|
3687
4637
|
|
3688
|
-
/**
|
4638
|
+
/**
|
4639
|
+
* OrNode#operator_loc
|
4640
|
+
*
|
4641
|
+
* The location of the `or` keyword or the `||` operator.
|
4642
|
+
*
|
4643
|
+
* left or right
|
4644
|
+
* ^^
|
4645
|
+
*/
|
3689
4646
|
pm_location_t operator_loc;
|
3690
4647
|
} pm_or_node_t;
|
3691
4648
|
|
@@ -3700,25 +4657,39 @@ typedef struct pm_parameters_node {
|
|
3700
4657
|
/** The embedded base node. */
|
3701
4658
|
pm_node_t base;
|
3702
4659
|
|
3703
|
-
/**
|
4660
|
+
/**
|
4661
|
+
* ParametersNode#requireds
|
4662
|
+
*/
|
3704
4663
|
struct pm_node_list requireds;
|
3705
4664
|
|
3706
|
-
/**
|
4665
|
+
/**
|
4666
|
+
* ParametersNode#optionals
|
4667
|
+
*/
|
3707
4668
|
struct pm_node_list optionals;
|
3708
4669
|
|
3709
|
-
/**
|
4670
|
+
/**
|
4671
|
+
* ParametersNode#rest
|
4672
|
+
*/
|
3710
4673
|
struct pm_node *rest;
|
3711
4674
|
|
3712
|
-
/**
|
4675
|
+
/**
|
4676
|
+
* ParametersNode#posts
|
4677
|
+
*/
|
3713
4678
|
struct pm_node_list posts;
|
3714
4679
|
|
3715
|
-
/**
|
4680
|
+
/**
|
4681
|
+
* ParametersNode#keywords
|
4682
|
+
*/
|
3716
4683
|
struct pm_node_list keywords;
|
3717
4684
|
|
3718
|
-
/**
|
4685
|
+
/**
|
4686
|
+
* ParametersNode#keyword_rest
|
4687
|
+
*/
|
3719
4688
|
struct pm_node *keyword_rest;
|
3720
4689
|
|
3721
|
-
/**
|
4690
|
+
/**
|
4691
|
+
* ParametersNode#block
|
4692
|
+
*/
|
3722
4693
|
struct pm_block_parameter_node *block;
|
3723
4694
|
} pm_parameters_node_t;
|
3724
4695
|
|
@@ -3733,13 +4704,19 @@ typedef struct pm_parentheses_node {
|
|
3733
4704
|
/** The embedded base node. */
|
3734
4705
|
pm_node_t base;
|
3735
4706
|
|
3736
|
-
/**
|
4707
|
+
/**
|
4708
|
+
* ParenthesesNode#body
|
4709
|
+
*/
|
3737
4710
|
struct pm_node *body;
|
3738
4711
|
|
3739
|
-
/**
|
4712
|
+
/**
|
4713
|
+
* ParenthesesNode#opening_loc
|
4714
|
+
*/
|
3740
4715
|
pm_location_t opening_loc;
|
3741
4716
|
|
3742
|
-
/**
|
4717
|
+
/**
|
4718
|
+
* ParenthesesNode#closing_loc
|
4719
|
+
*/
|
3743
4720
|
pm_location_t closing_loc;
|
3744
4721
|
} pm_parentheses_node_t;
|
3745
4722
|
|
@@ -3754,16 +4731,24 @@ typedef struct pm_pinned_expression_node {
|
|
3754
4731
|
/** The embedded base node. */
|
3755
4732
|
pm_node_t base;
|
3756
4733
|
|
3757
|
-
/**
|
4734
|
+
/**
|
4735
|
+
* PinnedExpressionNode#expression
|
4736
|
+
*/
|
3758
4737
|
struct pm_node *expression;
|
3759
4738
|
|
3760
|
-
/**
|
4739
|
+
/**
|
4740
|
+
* PinnedExpressionNode#operator_loc
|
4741
|
+
*/
|
3761
4742
|
pm_location_t operator_loc;
|
3762
4743
|
|
3763
|
-
/**
|
4744
|
+
/**
|
4745
|
+
* PinnedExpressionNode#lparen_loc
|
4746
|
+
*/
|
3764
4747
|
pm_location_t lparen_loc;
|
3765
4748
|
|
3766
|
-
/**
|
4749
|
+
/**
|
4750
|
+
* PinnedExpressionNode#rparen_loc
|
4751
|
+
*/
|
3767
4752
|
pm_location_t rparen_loc;
|
3768
4753
|
} pm_pinned_expression_node_t;
|
3769
4754
|
|
@@ -3778,10 +4763,14 @@ typedef struct pm_pinned_variable_node {
|
|
3778
4763
|
/** The embedded base node. */
|
3779
4764
|
pm_node_t base;
|
3780
4765
|
|
3781
|
-
/**
|
4766
|
+
/**
|
4767
|
+
* PinnedVariableNode#variable
|
4768
|
+
*/
|
3782
4769
|
struct pm_node *variable;
|
3783
4770
|
|
3784
|
-
/**
|
4771
|
+
/**
|
4772
|
+
* PinnedVariableNode#operator_loc
|
4773
|
+
*/
|
3785
4774
|
pm_location_t operator_loc;
|
3786
4775
|
} pm_pinned_variable_node_t;
|
3787
4776
|
|
@@ -3796,16 +4785,24 @@ typedef struct pm_post_execution_node {
|
|
3796
4785
|
/** The embedded base node. */
|
3797
4786
|
pm_node_t base;
|
3798
4787
|
|
3799
|
-
/**
|
4788
|
+
/**
|
4789
|
+
* PostExecutionNode#statements
|
4790
|
+
*/
|
3800
4791
|
struct pm_statements_node *statements;
|
3801
4792
|
|
3802
|
-
/**
|
4793
|
+
/**
|
4794
|
+
* PostExecutionNode#keyword_loc
|
4795
|
+
*/
|
3803
4796
|
pm_location_t keyword_loc;
|
3804
4797
|
|
3805
|
-
/**
|
4798
|
+
/**
|
4799
|
+
* PostExecutionNode#opening_loc
|
4800
|
+
*/
|
3806
4801
|
pm_location_t opening_loc;
|
3807
4802
|
|
3808
|
-
/**
|
4803
|
+
/**
|
4804
|
+
* PostExecutionNode#closing_loc
|
4805
|
+
*/
|
3809
4806
|
pm_location_t closing_loc;
|
3810
4807
|
} pm_post_execution_node_t;
|
3811
4808
|
|
@@ -3820,16 +4817,24 @@ typedef struct pm_pre_execution_node {
|
|
3820
4817
|
/** The embedded base node. */
|
3821
4818
|
pm_node_t base;
|
3822
4819
|
|
3823
|
-
/**
|
4820
|
+
/**
|
4821
|
+
* PreExecutionNode#statements
|
4822
|
+
*/
|
3824
4823
|
struct pm_statements_node *statements;
|
3825
4824
|
|
3826
|
-
/**
|
4825
|
+
/**
|
4826
|
+
* PreExecutionNode#keyword_loc
|
4827
|
+
*/
|
3827
4828
|
pm_location_t keyword_loc;
|
3828
4829
|
|
3829
|
-
/**
|
4830
|
+
/**
|
4831
|
+
* PreExecutionNode#opening_loc
|
4832
|
+
*/
|
3830
4833
|
pm_location_t opening_loc;
|
3831
4834
|
|
3832
|
-
/**
|
4835
|
+
/**
|
4836
|
+
* PreExecutionNode#closing_loc
|
4837
|
+
*/
|
3833
4838
|
pm_location_t closing_loc;
|
3834
4839
|
} pm_pre_execution_node_t;
|
3835
4840
|
|
@@ -3844,10 +4849,14 @@ typedef struct pm_program_node {
|
|
3844
4849
|
/** The embedded base node. */
|
3845
4850
|
pm_node_t base;
|
3846
4851
|
|
3847
|
-
/**
|
4852
|
+
/**
|
4853
|
+
* ProgramNode#locals
|
4854
|
+
*/
|
3848
4855
|
pm_constant_id_list_t locals;
|
3849
4856
|
|
3850
|
-
/**
|
4857
|
+
/**
|
4858
|
+
* ProgramNode#statements
|
4859
|
+
*/
|
3851
4860
|
struct pm_statements_node *statements;
|
3852
4861
|
} pm_program_node_t;
|
3853
4862
|
|
@@ -3864,13 +4873,38 @@ typedef struct pm_range_node {
|
|
3864
4873
|
/** The embedded base node. */
|
3865
4874
|
pm_node_t base;
|
3866
4875
|
|
3867
|
-
/**
|
4876
|
+
/**
|
4877
|
+
* RangeNode#left
|
4878
|
+
*
|
4879
|
+
* The left-hand side of the range, if present. It can be either `nil` or any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
4880
|
+
*
|
4881
|
+
* 1...
|
4882
|
+
* ^
|
4883
|
+
*
|
4884
|
+
* hello...goodbye
|
4885
|
+
* ^^^^^
|
4886
|
+
*/
|
3868
4887
|
struct pm_node *left;
|
3869
4888
|
|
3870
|
-
/**
|
4889
|
+
/**
|
4890
|
+
* RangeNode#right
|
4891
|
+
*
|
4892
|
+
* The right-hand side of the range, if present. It can be either `nil` or any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
4893
|
+
*
|
4894
|
+
* ..5
|
4895
|
+
* ^
|
4896
|
+
*
|
4897
|
+
* 1...foo
|
4898
|
+
* ^^^
|
4899
|
+
* If neither right-hand or left-hand side was included, this will be a MissingNode.
|
4900
|
+
*/
|
3871
4901
|
struct pm_node *right;
|
3872
4902
|
|
3873
|
-
/**
|
4903
|
+
/**
|
4904
|
+
* RangeNode#operator_loc
|
4905
|
+
*
|
4906
|
+
* The location of the `..` or `...` operator.
|
4907
|
+
*/
|
3874
4908
|
pm_location_t operator_loc;
|
3875
4909
|
} pm_range_node_t;
|
3876
4910
|
|
@@ -3885,7 +4919,9 @@ typedef struct pm_rational_node {
|
|
3885
4919
|
/** The embedded base node. */
|
3886
4920
|
pm_node_t base;
|
3887
4921
|
|
3888
|
-
/**
|
4922
|
+
/**
|
4923
|
+
* RationalNode#numeric
|
4924
|
+
*/
|
3889
4925
|
struct pm_node *numeric;
|
3890
4926
|
} pm_rational_node_t;
|
3891
4927
|
|
@@ -3924,16 +4960,24 @@ typedef struct pm_regular_expression_node {
|
|
3924
4960
|
/** The embedded base node. */
|
3925
4961
|
pm_node_t base;
|
3926
4962
|
|
3927
|
-
/**
|
4963
|
+
/**
|
4964
|
+
* RegularExpressionNode#opening_loc
|
4965
|
+
*/
|
3928
4966
|
pm_location_t opening_loc;
|
3929
4967
|
|
3930
|
-
/**
|
4968
|
+
/**
|
4969
|
+
* RegularExpressionNode#content_loc
|
4970
|
+
*/
|
3931
4971
|
pm_location_t content_loc;
|
3932
4972
|
|
3933
|
-
/**
|
4973
|
+
/**
|
4974
|
+
* RegularExpressionNode#closing_loc
|
4975
|
+
*/
|
3934
4976
|
pm_location_t closing_loc;
|
3935
4977
|
|
3936
|
-
/**
|
4978
|
+
/**
|
4979
|
+
* RegularExpressionNode#unescaped
|
4980
|
+
*/
|
3937
4981
|
pm_string_t unescaped;
|
3938
4982
|
} pm_regular_expression_node_t;
|
3939
4983
|
|
@@ -3941,6 +4985,8 @@ typedef struct pm_regular_expression_node {
|
|
3941
4985
|
* RequiredKeywordParameterNode
|
3942
4986
|
*
|
3943
4987
|
* Type: PM_REQUIRED_KEYWORD_PARAMETER_NODE
|
4988
|
+
* Flags:
|
4989
|
+
* PM_PARAMETER_FLAGS_REPEATED_PARAMETER
|
3944
4990
|
*
|
3945
4991
|
* @extends pm_node_t
|
3946
4992
|
*/
|
@@ -3948,10 +4994,14 @@ typedef struct pm_required_keyword_parameter_node {
|
|
3948
4994
|
/** The embedded base node. */
|
3949
4995
|
pm_node_t base;
|
3950
4996
|
|
3951
|
-
/**
|
4997
|
+
/**
|
4998
|
+
* RequiredKeywordParameterNode#name
|
4999
|
+
*/
|
3952
5000
|
pm_constant_id_t name;
|
3953
5001
|
|
3954
|
-
/**
|
5002
|
+
/**
|
5003
|
+
* RequiredKeywordParameterNode#name_loc
|
5004
|
+
*/
|
3955
5005
|
pm_location_t name_loc;
|
3956
5006
|
} pm_required_keyword_parameter_node_t;
|
3957
5007
|
|
@@ -3959,6 +5009,8 @@ typedef struct pm_required_keyword_parameter_node {
|
|
3959
5009
|
* RequiredParameterNode
|
3960
5010
|
*
|
3961
5011
|
* Type: PM_REQUIRED_PARAMETER_NODE
|
5012
|
+
* Flags:
|
5013
|
+
* PM_PARAMETER_FLAGS_REPEATED_PARAMETER
|
3962
5014
|
*
|
3963
5015
|
* @extends pm_node_t
|
3964
5016
|
*/
|
@@ -3966,7 +5018,9 @@ typedef struct pm_required_parameter_node {
|
|
3966
5018
|
/** The embedded base node. */
|
3967
5019
|
pm_node_t base;
|
3968
5020
|
|
3969
|
-
/**
|
5021
|
+
/**
|
5022
|
+
* RequiredParameterNode#name
|
5023
|
+
*/
|
3970
5024
|
pm_constant_id_t name;
|
3971
5025
|
} pm_required_parameter_node_t;
|
3972
5026
|
|
@@ -3981,13 +5035,19 @@ typedef struct pm_rescue_modifier_node {
|
|
3981
5035
|
/** The embedded base node. */
|
3982
5036
|
pm_node_t base;
|
3983
5037
|
|
3984
|
-
/**
|
5038
|
+
/**
|
5039
|
+
* RescueModifierNode#expression
|
5040
|
+
*/
|
3985
5041
|
struct pm_node *expression;
|
3986
5042
|
|
3987
|
-
/**
|
5043
|
+
/**
|
5044
|
+
* RescueModifierNode#keyword_loc
|
5045
|
+
*/
|
3988
5046
|
pm_location_t keyword_loc;
|
3989
5047
|
|
3990
|
-
/**
|
5048
|
+
/**
|
5049
|
+
* RescueModifierNode#rescue_expression
|
5050
|
+
*/
|
3991
5051
|
struct pm_node *rescue_expression;
|
3992
5052
|
} pm_rescue_modifier_node_t;
|
3993
5053
|
|
@@ -4002,22 +5062,34 @@ typedef struct pm_rescue_node {
|
|
4002
5062
|
/** The embedded base node. */
|
4003
5063
|
pm_node_t base;
|
4004
5064
|
|
4005
|
-
/**
|
5065
|
+
/**
|
5066
|
+
* RescueNode#keyword_loc
|
5067
|
+
*/
|
4006
5068
|
pm_location_t keyword_loc;
|
4007
5069
|
|
4008
|
-
/**
|
5070
|
+
/**
|
5071
|
+
* RescueNode#exceptions
|
5072
|
+
*/
|
4009
5073
|
struct pm_node_list exceptions;
|
4010
5074
|
|
4011
|
-
/**
|
5075
|
+
/**
|
5076
|
+
* RescueNode#operator_loc
|
5077
|
+
*/
|
4012
5078
|
pm_location_t operator_loc;
|
4013
5079
|
|
4014
|
-
/**
|
5080
|
+
/**
|
5081
|
+
* RescueNode#reference
|
5082
|
+
*/
|
4015
5083
|
struct pm_node *reference;
|
4016
5084
|
|
4017
|
-
/**
|
5085
|
+
/**
|
5086
|
+
* RescueNode#statements
|
5087
|
+
*/
|
4018
5088
|
struct pm_statements_node *statements;
|
4019
5089
|
|
4020
|
-
/**
|
5090
|
+
/**
|
5091
|
+
* RescueNode#consequent
|
5092
|
+
*/
|
4021
5093
|
struct pm_rescue_node *consequent;
|
4022
5094
|
} pm_rescue_node_t;
|
4023
5095
|
|
@@ -4025,6 +5097,8 @@ typedef struct pm_rescue_node {
|
|
4025
5097
|
* RestParameterNode
|
4026
5098
|
*
|
4027
5099
|
* Type: PM_REST_PARAMETER_NODE
|
5100
|
+
* Flags:
|
5101
|
+
* PM_PARAMETER_FLAGS_REPEATED_PARAMETER
|
4028
5102
|
*
|
4029
5103
|
* @extends pm_node_t
|
4030
5104
|
*/
|
@@ -4032,13 +5106,19 @@ typedef struct pm_rest_parameter_node {
|
|
4032
5106
|
/** The embedded base node. */
|
4033
5107
|
pm_node_t base;
|
4034
5108
|
|
4035
|
-
/**
|
5109
|
+
/**
|
5110
|
+
* RestParameterNode#name
|
5111
|
+
*/
|
4036
5112
|
pm_constant_id_t name;
|
4037
5113
|
|
4038
|
-
/**
|
5114
|
+
/**
|
5115
|
+
* RestParameterNode#name_loc
|
5116
|
+
*/
|
4039
5117
|
pm_location_t name_loc;
|
4040
5118
|
|
4041
|
-
/**
|
5119
|
+
/**
|
5120
|
+
* RestParameterNode#operator_loc
|
5121
|
+
*/
|
4042
5122
|
pm_location_t operator_loc;
|
4043
5123
|
} pm_rest_parameter_node_t;
|
4044
5124
|
|
@@ -4065,10 +5145,14 @@ typedef struct pm_return_node {
|
|
4065
5145
|
/** The embedded base node. */
|
4066
5146
|
pm_node_t base;
|
4067
5147
|
|
4068
|
-
/**
|
5148
|
+
/**
|
5149
|
+
* ReturnNode#keyword_loc
|
5150
|
+
*/
|
4069
5151
|
pm_location_t keyword_loc;
|
4070
5152
|
|
4071
|
-
/**
|
5153
|
+
/**
|
5154
|
+
* ReturnNode#arguments
|
5155
|
+
*/
|
4072
5156
|
struct pm_arguments_node *arguments;
|
4073
5157
|
} pm_return_node_t;
|
4074
5158
|
|
@@ -4095,22 +5179,34 @@ typedef struct pm_singleton_class_node {
|
|
4095
5179
|
/** The embedded base node. */
|
4096
5180
|
pm_node_t base;
|
4097
5181
|
|
4098
|
-
/**
|
5182
|
+
/**
|
5183
|
+
* SingletonClassNode#locals
|
5184
|
+
*/
|
4099
5185
|
pm_constant_id_list_t locals;
|
4100
5186
|
|
4101
|
-
/**
|
5187
|
+
/**
|
5188
|
+
* SingletonClassNode#class_keyword_loc
|
5189
|
+
*/
|
4102
5190
|
pm_location_t class_keyword_loc;
|
4103
5191
|
|
4104
|
-
/**
|
5192
|
+
/**
|
5193
|
+
* SingletonClassNode#operator_loc
|
5194
|
+
*/
|
4105
5195
|
pm_location_t operator_loc;
|
4106
5196
|
|
4107
|
-
/**
|
5197
|
+
/**
|
5198
|
+
* SingletonClassNode#expression
|
5199
|
+
*/
|
4108
5200
|
struct pm_node *expression;
|
4109
5201
|
|
4110
|
-
/**
|
5202
|
+
/**
|
5203
|
+
* SingletonClassNode#body
|
5204
|
+
*/
|
4111
5205
|
struct pm_node *body;
|
4112
5206
|
|
4113
|
-
/**
|
5207
|
+
/**
|
5208
|
+
* SingletonClassNode#end_keyword_loc
|
5209
|
+
*/
|
4114
5210
|
pm_location_t end_keyword_loc;
|
4115
5211
|
} pm_singleton_class_node_t;
|
4116
5212
|
|
@@ -4137,7 +5233,9 @@ typedef struct pm_source_file_node {
|
|
4137
5233
|
/** The embedded base node. */
|
4138
5234
|
pm_node_t base;
|
4139
5235
|
|
4140
|
-
/**
|
5236
|
+
/**
|
5237
|
+
* SourceFileNode#filepath
|
5238
|
+
*/
|
4141
5239
|
pm_string_t filepath;
|
4142
5240
|
} pm_source_file_node_t;
|
4143
5241
|
|
@@ -4164,10 +5262,14 @@ typedef struct pm_splat_node {
|
|
4164
5262
|
/** The embedded base node. */
|
4165
5263
|
pm_node_t base;
|
4166
5264
|
|
4167
|
-
/**
|
5265
|
+
/**
|
5266
|
+
* SplatNode#operator_loc
|
5267
|
+
*/
|
4168
5268
|
pm_location_t operator_loc;
|
4169
5269
|
|
4170
|
-
/**
|
5270
|
+
/**
|
5271
|
+
* SplatNode#expression
|
5272
|
+
*/
|
4171
5273
|
struct pm_node *expression;
|
4172
5274
|
} pm_splat_node_t;
|
4173
5275
|
|
@@ -4182,7 +5284,9 @@ typedef struct pm_statements_node {
|
|
4182
5284
|
/** The embedded base node. */
|
4183
5285
|
pm_node_t base;
|
4184
5286
|
|
4185
|
-
/**
|
5287
|
+
/**
|
5288
|
+
* StatementsNode#body
|
5289
|
+
*/
|
4186
5290
|
struct pm_node_list body;
|
4187
5291
|
} pm_statements_node_t;
|
4188
5292
|
|
@@ -4201,16 +5305,24 @@ typedef struct pm_string_node {
|
|
4201
5305
|
/** The embedded base node. */
|
4202
5306
|
pm_node_t base;
|
4203
5307
|
|
4204
|
-
/**
|
5308
|
+
/**
|
5309
|
+
* StringNode#opening_loc
|
5310
|
+
*/
|
4205
5311
|
pm_location_t opening_loc;
|
4206
5312
|
|
4207
|
-
/**
|
5313
|
+
/**
|
5314
|
+
* StringNode#content_loc
|
5315
|
+
*/
|
4208
5316
|
pm_location_t content_loc;
|
4209
5317
|
|
4210
|
-
/**
|
5318
|
+
/**
|
5319
|
+
* StringNode#closing_loc
|
5320
|
+
*/
|
4211
5321
|
pm_location_t closing_loc;
|
4212
5322
|
|
4213
|
-
/**
|
5323
|
+
/**
|
5324
|
+
* StringNode#unescaped
|
5325
|
+
*/
|
4214
5326
|
pm_string_t unescaped;
|
4215
5327
|
} pm_string_node_t;
|
4216
5328
|
|
@@ -4225,19 +5337,29 @@ typedef struct pm_super_node {
|
|
4225
5337
|
/** The embedded base node. */
|
4226
5338
|
pm_node_t base;
|
4227
5339
|
|
4228
|
-
/**
|
5340
|
+
/**
|
5341
|
+
* SuperNode#keyword_loc
|
5342
|
+
*/
|
4229
5343
|
pm_location_t keyword_loc;
|
4230
5344
|
|
4231
|
-
/**
|
5345
|
+
/**
|
5346
|
+
* SuperNode#lparen_loc
|
5347
|
+
*/
|
4232
5348
|
pm_location_t lparen_loc;
|
4233
5349
|
|
4234
|
-
/**
|
5350
|
+
/**
|
5351
|
+
* SuperNode#arguments
|
5352
|
+
*/
|
4235
5353
|
struct pm_arguments_node *arguments;
|
4236
5354
|
|
4237
|
-
/**
|
5355
|
+
/**
|
5356
|
+
* SuperNode#rparen_loc
|
5357
|
+
*/
|
4238
5358
|
pm_location_t rparen_loc;
|
4239
5359
|
|
4240
|
-
/**
|
5360
|
+
/**
|
5361
|
+
* SuperNode#block
|
5362
|
+
*/
|
4241
5363
|
struct pm_node *block;
|
4242
5364
|
} pm_super_node_t;
|
4243
5365
|
|
@@ -4256,16 +5378,24 @@ typedef struct pm_symbol_node {
|
|
4256
5378
|
/** The embedded base node. */
|
4257
5379
|
pm_node_t base;
|
4258
5380
|
|
4259
|
-
/**
|
5381
|
+
/**
|
5382
|
+
* SymbolNode#opening_loc
|
5383
|
+
*/
|
4260
5384
|
pm_location_t opening_loc;
|
4261
5385
|
|
4262
|
-
/**
|
5386
|
+
/**
|
5387
|
+
* SymbolNode#value_loc
|
5388
|
+
*/
|
4263
5389
|
pm_location_t value_loc;
|
4264
5390
|
|
4265
|
-
/**
|
5391
|
+
/**
|
5392
|
+
* SymbolNode#closing_loc
|
5393
|
+
*/
|
4266
5394
|
pm_location_t closing_loc;
|
4267
5395
|
|
4268
|
-
/**
|
5396
|
+
/**
|
5397
|
+
* SymbolNode#unescaped
|
5398
|
+
*/
|
4269
5399
|
pm_string_t unescaped;
|
4270
5400
|
} pm_symbol_node_t;
|
4271
5401
|
|
@@ -4292,10 +5422,14 @@ typedef struct pm_undef_node {
|
|
4292
5422
|
/** The embedded base node. */
|
4293
5423
|
pm_node_t base;
|
4294
5424
|
|
4295
|
-
/**
|
5425
|
+
/**
|
5426
|
+
* UndefNode#names
|
5427
|
+
*/
|
4296
5428
|
struct pm_node_list names;
|
4297
5429
|
|
4298
|
-
/**
|
5430
|
+
/**
|
5431
|
+
* UndefNode#keyword_loc
|
5432
|
+
*/
|
4299
5433
|
pm_location_t keyword_loc;
|
4300
5434
|
} pm_undef_node_t;
|
4301
5435
|
|
@@ -4310,22 +5444,34 @@ typedef struct pm_unless_node {
|
|
4310
5444
|
/** The embedded base node. */
|
4311
5445
|
pm_node_t base;
|
4312
5446
|
|
4313
|
-
/**
|
5447
|
+
/**
|
5448
|
+
* UnlessNode#keyword_loc
|
5449
|
+
*/
|
4314
5450
|
pm_location_t keyword_loc;
|
4315
5451
|
|
4316
|
-
/**
|
5452
|
+
/**
|
5453
|
+
* UnlessNode#predicate
|
5454
|
+
*/
|
4317
5455
|
struct pm_node *predicate;
|
4318
5456
|
|
4319
|
-
/**
|
5457
|
+
/**
|
5458
|
+
* UnlessNode#then_keyword_loc
|
5459
|
+
*/
|
4320
5460
|
pm_location_t then_keyword_loc;
|
4321
5461
|
|
4322
|
-
/**
|
5462
|
+
/**
|
5463
|
+
* UnlessNode#statements
|
5464
|
+
*/
|
4323
5465
|
struct pm_statements_node *statements;
|
4324
5466
|
|
4325
|
-
/**
|
5467
|
+
/**
|
5468
|
+
* UnlessNode#consequent
|
5469
|
+
*/
|
4326
5470
|
struct pm_else_node *consequent;
|
4327
5471
|
|
4328
|
-
/**
|
5472
|
+
/**
|
5473
|
+
* UnlessNode#end_keyword_loc
|
5474
|
+
*/
|
4329
5475
|
pm_location_t end_keyword_loc;
|
4330
5476
|
} pm_unless_node_t;
|
4331
5477
|
|
@@ -4342,16 +5488,24 @@ typedef struct pm_until_node {
|
|
4342
5488
|
/** The embedded base node. */
|
4343
5489
|
pm_node_t base;
|
4344
5490
|
|
4345
|
-
/**
|
5491
|
+
/**
|
5492
|
+
* UntilNode#keyword_loc
|
5493
|
+
*/
|
4346
5494
|
pm_location_t keyword_loc;
|
4347
5495
|
|
4348
|
-
/**
|
5496
|
+
/**
|
5497
|
+
* UntilNode#closing_loc
|
5498
|
+
*/
|
4349
5499
|
pm_location_t closing_loc;
|
4350
5500
|
|
4351
|
-
/**
|
5501
|
+
/**
|
5502
|
+
* UntilNode#predicate
|
5503
|
+
*/
|
4352
5504
|
struct pm_node *predicate;
|
4353
5505
|
|
4354
|
-
/**
|
5506
|
+
/**
|
5507
|
+
* UntilNode#statements
|
5508
|
+
*/
|
4355
5509
|
struct pm_statements_node *statements;
|
4356
5510
|
} pm_until_node_t;
|
4357
5511
|
|
@@ -4366,13 +5520,19 @@ typedef struct pm_when_node {
|
|
4366
5520
|
/** The embedded base node. */
|
4367
5521
|
pm_node_t base;
|
4368
5522
|
|
4369
|
-
/**
|
5523
|
+
/**
|
5524
|
+
* WhenNode#keyword_loc
|
5525
|
+
*/
|
4370
5526
|
pm_location_t keyword_loc;
|
4371
5527
|
|
4372
|
-
/**
|
5528
|
+
/**
|
5529
|
+
* WhenNode#conditions
|
5530
|
+
*/
|
4373
5531
|
struct pm_node_list conditions;
|
4374
5532
|
|
4375
|
-
/**
|
5533
|
+
/**
|
5534
|
+
* WhenNode#statements
|
5535
|
+
*/
|
4376
5536
|
struct pm_statements_node *statements;
|
4377
5537
|
} pm_when_node_t;
|
4378
5538
|
|
@@ -4389,16 +5549,24 @@ typedef struct pm_while_node {
|
|
4389
5549
|
/** The embedded base node. */
|
4390
5550
|
pm_node_t base;
|
4391
5551
|
|
4392
|
-
/**
|
5552
|
+
/**
|
5553
|
+
* WhileNode#keyword_loc
|
5554
|
+
*/
|
4393
5555
|
pm_location_t keyword_loc;
|
4394
5556
|
|
4395
|
-
/**
|
5557
|
+
/**
|
5558
|
+
* WhileNode#closing_loc
|
5559
|
+
*/
|
4396
5560
|
pm_location_t closing_loc;
|
4397
5561
|
|
4398
|
-
/**
|
5562
|
+
/**
|
5563
|
+
* WhileNode#predicate
|
5564
|
+
*/
|
4399
5565
|
struct pm_node *predicate;
|
4400
5566
|
|
4401
|
-
/**
|
5567
|
+
/**
|
5568
|
+
* WhileNode#statements
|
5569
|
+
*/
|
4402
5570
|
struct pm_statements_node *statements;
|
4403
5571
|
} pm_while_node_t;
|
4404
5572
|
|
@@ -4416,16 +5584,24 @@ typedef struct pm_x_string_node {
|
|
4416
5584
|
/** The embedded base node. */
|
4417
5585
|
pm_node_t base;
|
4418
5586
|
|
4419
|
-
/**
|
5587
|
+
/**
|
5588
|
+
* XStringNode#opening_loc
|
5589
|
+
*/
|
4420
5590
|
pm_location_t opening_loc;
|
4421
5591
|
|
4422
|
-
/**
|
5592
|
+
/**
|
5593
|
+
* XStringNode#content_loc
|
5594
|
+
*/
|
4423
5595
|
pm_location_t content_loc;
|
4424
5596
|
|
4425
|
-
/**
|
5597
|
+
/**
|
5598
|
+
* XStringNode#closing_loc
|
5599
|
+
*/
|
4426
5600
|
pm_location_t closing_loc;
|
4427
5601
|
|
4428
|
-
/**
|
5602
|
+
/**
|
5603
|
+
* XStringNode#unescaped
|
5604
|
+
*/
|
4429
5605
|
pm_string_t unescaped;
|
4430
5606
|
} pm_x_string_node_t;
|
4431
5607
|
|
@@ -4440,16 +5616,24 @@ typedef struct pm_yield_node {
|
|
4440
5616
|
/** The embedded base node. */
|
4441
5617
|
pm_node_t base;
|
4442
5618
|
|
4443
|
-
/**
|
5619
|
+
/**
|
5620
|
+
* YieldNode#keyword_loc
|
5621
|
+
*/
|
4444
5622
|
pm_location_t keyword_loc;
|
4445
5623
|
|
4446
|
-
/**
|
5624
|
+
/**
|
5625
|
+
* YieldNode#lparen_loc
|
5626
|
+
*/
|
4447
5627
|
pm_location_t lparen_loc;
|
4448
5628
|
|
4449
|
-
/**
|
5629
|
+
/**
|
5630
|
+
* YieldNode#arguments
|
5631
|
+
*/
|
4450
5632
|
struct pm_arguments_node *arguments;
|
4451
5633
|
|
4452
|
-
/**
|
5634
|
+
/**
|
5635
|
+
* YieldNode#rparen_loc
|
5636
|
+
*/
|
4453
5637
|
pm_location_t rparen_loc;
|
4454
5638
|
} pm_yield_node_t;
|
4455
5639
|
|
@@ -4481,6 +5665,9 @@ typedef enum pm_call_node_flags {
|
|
4481
5665
|
|
4482
5666
|
/** a call that is an attribute write, so the value being written should be returned */
|
4483
5667
|
PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 4,
|
5668
|
+
|
5669
|
+
/** a call that ignores method visibility */
|
5670
|
+
PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 8,
|
4484
5671
|
} pm_call_node_flags_t;
|
4485
5672
|
|
4486
5673
|
/**
|
@@ -4515,8 +5702,8 @@ typedef enum pm_integer_base_flags {
|
|
4515
5702
|
* Flags for keyword hash nodes.
|
4516
5703
|
*/
|
4517
5704
|
typedef enum pm_keyword_hash_node_flags {
|
4518
|
-
/** a keyword hash which only has `AssocNode` elements all with
|
4519
|
-
|
5705
|
+
/** a keyword hash which only has `AssocNode` elements all with symbol keys, which means the elements can be treated as keyword arguments */
|
5706
|
+
PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 1,
|
4520
5707
|
} pm_keyword_hash_node_flags_t;
|
4521
5708
|
|
4522
5709
|
/**
|
@@ -4527,6 +5714,14 @@ typedef enum pm_loop_flags {
|
|
4527
5714
|
PM_LOOP_FLAGS_BEGIN_MODIFIER = 1,
|
4528
5715
|
} pm_loop_flags_t;
|
4529
5716
|
|
5717
|
+
/**
|
5718
|
+
* Flags for parameter nodes.
|
5719
|
+
*/
|
5720
|
+
typedef enum pm_parameter_flags {
|
5721
|
+
/** a parameter name that has been repeated in the method signature */
|
5722
|
+
PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 1,
|
5723
|
+
} pm_parameter_flags_t;
|
5724
|
+
|
4530
5725
|
/**
|
4531
5726
|
* Flags for range and flip-flop nodes.
|
4532
5727
|
*/
|