prism 2.0.0.rc2-x86_64-linux-gnu → 2.0.0-x86_64-linux-gnu

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -2
  3. data/docs/serialization.md +19 -6
  4. data/ext/prism/api_node.c +80 -80
  5. data/ext/prism/extension.c +34 -67
  6. data/ext/prism/extension.h +1 -1
  7. data/include/prism/arena.h +8 -0
  8. data/include/prism/arena.hpp +42 -0
  9. data/include/prism/ast.h +11 -1
  10. data/include/prism/ast.hpp +641 -0
  11. data/include/prism/buffer.h +8 -0
  12. data/include/prism/buffer.hpp +55 -0
  13. data/include/prism/comments.h +17 -0
  14. data/include/prism/compiler/branch.h +26 -0
  15. data/include/prism/compiler/cplusplus.hpp +16 -0
  16. data/include/prism/compiler/exceptions.hpp +17 -0
  17. data/include/prism/compiler/format.h +2 -0
  18. data/include/prism/compiler/lifetimebound.hpp +25 -0
  19. data/include/prism/constant_pool.h +25 -0
  20. data/include/prism/diagnostic.h +18 -0
  21. data/include/prism/errors_format.h +8 -0
  22. data/include/prism/internal/node.h +8 -4
  23. data/include/prism/internal/stringy.h +1 -6
  24. data/include/prism/json.h +8 -0
  25. data/include/prism/line_offset_list.h +8 -0
  26. data/include/prism/magic_comments.h +18 -0
  27. data/include/prism/node.h +55 -10
  28. data/include/prism/node.hpp +272 -0
  29. data/include/prism/node_type.hpp +38 -0
  30. data/include/prism/options.h +10 -1
  31. data/include/prism/options.hpp +43 -0
  32. data/include/prism/parser.h +72 -64
  33. data/include/prism/parser.hpp +274 -0
  34. data/include/prism/prettyprint.h +8 -0
  35. data/include/prism/serialize.h +8 -0
  36. data/include/prism/source.h +8 -0
  37. data/include/prism/stream.h +8 -0
  38. data/include/prism/string_query.h +8 -0
  39. data/include/prism/stringy.h +16 -27
  40. data/include/prism/stringy.hpp +31 -0
  41. data/include/prism/version.h +9 -1
  42. data/include/prism.h +0 -8
  43. data/include/prism.hpp +24 -0
  44. data/lib/prism/3.3/prism.so +0 -0
  45. data/lib/prism/3.4/prism.so +0 -0
  46. data/lib/prism/4.0/prism.so +0 -0
  47. data/lib/prism/serialize.rb +2549 -3281
  48. data/prism.gemspec +14 -1
  49. data/rbi/generated/prism/node.rbi +736 -0
  50. data/rbi/generated/prism/serialize.rbi +6 -5
  51. data/sig/generated/prism/node.rbs +736 -0
  52. data/sig/generated/prism/serialize.rbs +7 -5
  53. data/src/comments.c +2 -2
  54. data/src/diagnostic.c +8 -0
  55. data/src/node.c +216 -368
  56. data/src/options.c +7 -13
  57. data/src/parser.c +52 -48
  58. data/src/prism.c +175 -194
  59. data/src/regexp.c +0 -1
  60. data/src/serialize.c +2300 -1950
  61. data/src/source.c +8 -2
  62. data/src/stringy.c +3 -33
  63. metadata +14 -1
@@ -278,6 +278,8 @@ module Prism
278
278
  # alias $foo $bar
279
279
  # ^^^^^^^^^^^^^^^
280
280
  # ```
281
+ #
282
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgJGZvbyAkYmFyCg)
281
283
  class AliasGlobalVariableNode < Node
282
284
  @keyword_loc: Location
283
285
 
@@ -348,6 +350,8 @@ module Prism
348
350
  # ^^^^
349
351
  # ```
350
352
  #
353
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgJGZvbyAkYmFyCg)
354
+ #
351
355
  # : () -> (GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode)
352
356
  def new_name: () -> (GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode)
353
357
 
@@ -361,6 +365,8 @@ module Prism
361
365
  # ^^^^
362
366
  # ```
363
367
  #
368
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgJGZvbyAkYmFyCg)
369
+ #
364
370
  # : () -> (GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode)
365
371
  def old_name: () -> (GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode)
366
372
 
@@ -375,6 +381,8 @@ module Prism
375
381
  # ^^^^^
376
382
  # ```
377
383
  #
384
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgJGZvbyAkYmFyCg)
385
+ #
378
386
  # : () -> Location
379
387
  def keyword_loc: () -> Location
380
388
 
@@ -403,6 +411,8 @@ module Prism
403
411
  # alias foo bar
404
412
  # ^^^^^^^^^^^^^
405
413
  # ```
414
+ #
415
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgZm9vIGJhcgo)
406
416
  class AliasMethodNode < Node
407
417
  @keyword_loc: Location
408
418
 
@@ -479,6 +489,8 @@ module Prism
479
489
  # ^^^^^^^^^
480
490
  # ```
481
491
  #
492
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgZm9vIGJhcgoKYWxpYXMgOmZvbyA6YmFyCgphbGlhcyA6IiN7Zm9vfSIgOiIje2Jhcn0iCg)
493
+ #
482
494
  # : () -> (SymbolNode | InterpolatedSymbolNode)
483
495
  def new_name: () -> (SymbolNode | InterpolatedSymbolNode)
484
496
 
@@ -498,6 +510,8 @@ module Prism
498
510
  # ^^^^^^^^^
499
511
  # ```
500
512
  #
513
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgZm9vIGJhcgoKYWxpYXMgOmZvbyA6YmFyCgphbGlhcyA6IiN7Zm9vfSIgOiIje2Jhcn0iCg)
514
+ #
501
515
  # : () -> (SymbolNode | InterpolatedSymbolNode)
502
516
  def old_name: () -> (SymbolNode | InterpolatedSymbolNode)
503
517
 
@@ -512,6 +526,8 @@ module Prism
512
526
  # ^^^^^
513
527
  # ```
514
528
  #
529
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgZm9vIGJhcgo)
530
+ #
515
531
  # : () -> Location
516
532
  def keyword_loc: () -> Location
517
533
 
@@ -540,6 +556,8 @@ module Prism
540
556
  # foo => bar | baz
541
557
  # ^^^^^^^^^
542
558
  # ```
559
+ #
560
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhciB8IGJhego)
543
561
  class AlternationPatternNode < Node
544
562
  @operator_loc: Location
545
563
 
@@ -610,6 +628,8 @@ module Prism
610
628
  # ^^^
611
629
  # ```
612
630
  #
631
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhciB8IGJhego)
632
+ #
613
633
  # : () -> Prism::node
614
634
  def left: () -> Prism::node
615
635
 
@@ -623,6 +643,8 @@ module Prism
623
643
  # ^^^
624
644
  # ```
625
645
  #
646
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhciB8IGJhego)
647
+ #
626
648
  # : () -> Prism::node
627
649
  def right: () -> Prism::node
628
650
 
@@ -637,6 +659,8 @@ module Prism
637
659
  # ^
638
660
  # ```
639
661
  #
662
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhciB8IGJhego)
663
+ #
640
664
  # : () -> Location
641
665
  def operator_loc: () -> Location
642
666
 
@@ -665,6 +689,8 @@ module Prism
665
689
  # left and right
666
690
  # ^^^^^^^^^^^^^^
667
691
  # ```
692
+ #
693
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBhbmQgcmlnaHQK)
668
694
  class AndNode < Node
669
695
  @operator_loc: Location
670
696
 
@@ -738,6 +764,8 @@ module Prism
738
764
  # ^
739
765
  # ```
740
766
  #
767
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBhbmQgcmlnaHQKCjEgJiYgMgo)
768
+ #
741
769
  # : () -> Prism::node
742
770
  def left: () -> Prism::node
743
771
 
@@ -754,6 +782,8 @@ module Prism
754
782
  # ^
755
783
  # ```
756
784
  #
785
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCAmJiByaWdodAoKMSBhbmQgMgo)
786
+ #
757
787
  # : () -> Prism::node
758
788
  def right: () -> Prism::node
759
789
 
@@ -768,6 +798,8 @@ module Prism
768
798
  # ^^^
769
799
  # ```
770
800
  #
801
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBhbmQgcmlnaHQK)
802
+ #
771
803
  # : () -> Location
772
804
  def operator_loc: () -> Location
773
805
 
@@ -796,6 +828,8 @@ module Prism
796
828
  # return foo, bar, baz
797
829
  # ^^^^^^^^^^^^^
798
830
  # ```
831
+ #
832
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#cmV0dXJuIGZvbywgYmFyLCBiYXoK)
799
833
  class ArgumentsNode < Node
800
834
  @arguments: Array[Prism::node]
801
835
 
@@ -892,6 +926,8 @@ module Prism
892
926
  # ^^^^^^^^
893
927
  # ```
894
928
  #
929
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGJhciwgYmF6KQo)
930
+ #
895
931
  # : () -> Array[Prism::node]
896
932
  def arguments: () -> Array[Prism::node]
897
933
 
@@ -905,6 +941,8 @@ module Prism
905
941
  # [1, 2, 3]
906
942
  # ^^^^^^^^^
907
943
  # ```
944
+ #
945
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdCg)
908
946
  class ArrayNode < Node
909
947
  @closing_loc: Location?
910
948
 
@@ -992,6 +1030,8 @@ module Prism
992
1030
  # foo = 1, 2, 3 # nil
993
1031
  # ```
994
1032
  #
1033
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsMiwzXSAgICAgICAgICAgICAgICAgIyAiWyIKJXdbZm9vIGJhciBiYXpdICAgICAgICAgIyAiJXdbIgolSShhcHBsZSBvcmFuZ2UgYmFuYW5hKSAjICIlSSgiCmZvbyA9IDEsIDIsIDMgICAgICAgICAgICMgbmlsCg)
1034
+ #
995
1035
  # : () -> Location?
996
1036
  def opening_loc: () -> Location?
997
1037
 
@@ -1015,6 +1055,8 @@ module Prism
1015
1055
  # foo = 1, 2, 3 # nil
1016
1056
  # ```
1017
1057
  #
1058
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsMiwzXSAgICAgICAgICAgICAgICAgIyAiXSIKJXdbZm9vIGJhciBiYXpdICAgICAgICAgIyAiXSIKJUkoYXBwbGUgb3JhbmdlIGJhbmFuYSkgIyAiKSIKZm9vID0gMSwgMiwgMyAgICAgICAgICAgIyBuaWwK)
1059
+ #
1018
1060
  # : () -> Location?
1019
1061
  def closing_loc: () -> Location?
1020
1062
 
@@ -1063,6 +1105,8 @@ module Prism
1063
1105
  # foo in Bar[1, 2, 3]
1064
1106
  # ^^^^^^^^^^^^
1065
1107
  # ```
1108
+ #
1109
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIDEsIDIKCmZvbyBpbiBbMSwgMl0KCmZvbyBpbiAqYmFyCgpmb28gaW4gQmFyW10KCmZvbyBpbiBCYXJbMSwgMiwgM10K)
1066
1110
  class ArrayPatternNode < Node
1067
1111
  @closing_loc: Location?
1068
1112
 
@@ -1145,6 +1189,8 @@ module Prism
1145
1189
  # ^^^^^^^^
1146
1190
  # ```
1147
1191
  #
1192
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIEJhcltdCgpmb28gaW4gQmFyWzEsIDIsIDNdCgpmb28gaW4gQmFyOjpCYXpbMSwgMiwgM10K)
1193
+ #
1148
1194
  # : () -> (ConstantPathNode | ConstantReadNode)?
1149
1195
  def constant: () -> (ConstantPathNode | ConstantReadNode)?
1150
1196
 
@@ -1158,6 +1204,8 @@ module Prism
1158
1204
  # ^ ^
1159
1205
  # ```
1160
1206
  #
1207
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsxLCAyXQo)
1208
+ #
1161
1209
  # : () -> Array[Prism::node]
1162
1210
  def requireds: () -> Array[Prism::node]
1163
1211
 
@@ -1171,6 +1219,8 @@ module Prism
1171
1219
  # ^^^^
1172
1220
  # ```
1173
1221
  #
1222
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIK)
1223
+ #
1174
1224
  # : () -> (ImplicitRestNode | SplatNode)?
1175
1225
  def rest: () -> (ImplicitRestNode | SplatNode)?
1176
1226
 
@@ -1184,6 +1234,8 @@ module Prism
1184
1234
  # ^^^
1185
1235
  # ```
1186
1236
  #
1237
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJhego)
1238
+ #
1187
1239
  # : () -> Array[Prism::node]
1188
1240
  def posts: () -> Array[Prism::node]
1189
1241
 
@@ -1198,6 +1250,8 @@ module Prism
1198
1250
  # ^
1199
1251
  # ```
1200
1252
  #
1253
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsxLCAyXQo)
1254
+ #
1201
1255
  # : () -> Location?
1202
1256
  def opening_loc: () -> Location?
1203
1257
 
@@ -1219,6 +1273,8 @@ module Prism
1219
1273
  # ^
1220
1274
  # ```
1221
1275
  #
1276
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsxLCAyXQo)
1277
+ #
1222
1278
  # : () -> Location?
1223
1279
  def closing_loc: () -> Location?
1224
1280
 
@@ -1255,6 +1311,8 @@ module Prism
1255
1311
  # { a => b }
1256
1312
  # ^^^^^^
1257
1313
  # ```
1314
+ #
1315
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhID0-IGIgfQo)
1258
1316
  class AssocNode < Node
1259
1317
  @operator_loc: Location?
1260
1318
 
@@ -1331,6 +1389,8 @@ module Prism
1331
1389
  # ^^^^^^^^^^
1332
1390
  # ```
1333
1391
  #
1392
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhOiBiIH0KCnsgZm9vID0-IGJhciB9Cgp7IGRlZiBhOyBlbmQgPT4gMSB9Cg)
1393
+ #
1334
1394
  # : () -> Prism::node
1335
1395
  def key: () -> Prism::node
1336
1396
 
@@ -1347,6 +1407,8 @@ module Prism
1347
1407
  # ^
1348
1408
  # ```
1349
1409
  #
1410
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBmb28gPT4gYmFyIH0KCnsgeDogMSB9Cg)
1411
+ #
1350
1412
  # : () -> Prism::node
1351
1413
  def value: () -> Prism::node
1352
1414
 
@@ -1361,6 +1423,8 @@ module Prism
1361
1423
  # ^^
1362
1424
  # ```
1363
1425
  #
1426
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBmb28gPT4gYmFyIH0K)
1427
+ #
1364
1428
  # : () -> Location?
1365
1429
  def operator_loc: () -> Location?
1366
1430
 
@@ -1389,6 +1453,8 @@ module Prism
1389
1453
  # { **foo }
1390
1454
  # ^^^^^
1391
1455
  # ```
1456
+ #
1457
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyAqKmZvbyB9Cg)
1392
1458
  class AssocSplatNode < Node
1393
1459
  @operator_loc: Location
1394
1460
 
@@ -1457,6 +1523,8 @@ module Prism
1457
1523
  # ^^^
1458
1524
  # ```
1459
1525
  #
1526
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyAqKmZvbyB9Cg)
1527
+ #
1460
1528
  # : () -> Prism::node?
1461
1529
  def value: () -> Prism::node?
1462
1530
 
@@ -1471,6 +1539,8 @@ module Prism
1471
1539
  # ^^
1472
1540
  # ```
1473
1541
  #
1542
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyAqKnggfQo)
1543
+ #
1474
1544
  # : () -> Location
1475
1545
  def operator_loc: () -> Location
1476
1546
 
@@ -1499,6 +1569,8 @@ module Prism
1499
1569
  # $'
1500
1570
  # ^^
1501
1571
  # ```
1572
+ #
1573
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JCcK)
1502
1574
  class BackReferenceReadNode < Node
1503
1575
  @name: Symbol
1504
1576
 
@@ -1566,6 +1638,8 @@ module Prism
1566
1638
  # $+ # name `:$+`
1567
1639
  # ```
1568
1640
  #
1641
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JCYgIyBuYW1lIGA6JCZgCgokKyAjIG5hbWUgYDokK2AK)
1642
+ #
1569
1643
  # : () -> Symbol
1570
1644
  def name: () -> Symbol
1571
1645
 
@@ -1581,6 +1655,8 @@ module Prism
1581
1655
  # end
1582
1656
  # ^^^^^
1583
1657
  # ```
1658
+ #
1659
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4KICBmb28KZW5kCg)
1584
1660
  class BeginNode < Node
1585
1661
  @end_keyword_loc: Location?
1586
1662
 
@@ -1658,6 +1734,8 @@ module Prism
1658
1734
  # ^^^^^
1659
1735
  # ```
1660
1736
  #
1737
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geCBlbmQK)
1738
+ #
1661
1739
  # : () -> Location?
1662
1740
  def begin_keyword_loc: () -> Location?
1663
1741
 
@@ -1678,6 +1756,8 @@ module Prism
1678
1756
  # ^
1679
1757
  # ```
1680
1758
  #
1759
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geCBlbmQK)
1760
+ #
1681
1761
  # : () -> StatementsNode?
1682
1762
  def statements: () -> StatementsNode?
1683
1763
 
@@ -1691,6 +1771,8 @@ module Prism
1691
1771
  # ^^^^^^^^
1692
1772
  # ```
1693
1773
  #
1774
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geDsgcmVzY3VlIHk7IGVuZAo)
1775
+ #
1694
1776
  # : () -> RescueNode?
1695
1777
  def rescue_clause: () -> RescueNode?
1696
1778
 
@@ -1704,6 +1786,8 @@ module Prism
1704
1786
  # ^^^^^^^^^^^
1705
1787
  # ```
1706
1788
  #
1789
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geDsgcmVzY3VlIHk7IGVsc2UgejsgZW5kCg)
1790
+ #
1707
1791
  # : () -> ElseNode?
1708
1792
  def else_clause: () -> ElseNode?
1709
1793
 
@@ -1717,6 +1801,8 @@ module Prism
1717
1801
  # ^^^^^^^^
1718
1802
  # ```
1719
1803
  #
1804
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geDsgZW5zdXJlIHk7IGVuZAo)
1805
+ #
1720
1806
  # : () -> EnsureNode?
1721
1807
  def ensure_clause: () -> EnsureNode?
1722
1808
 
@@ -1731,6 +1817,8 @@ module Prism
1731
1817
  # ^^^
1732
1818
  # ```
1733
1819
  #
1820
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geCBlbmQK)
1821
+ #
1734
1822
  # : () -> Location?
1735
1823
  def end_keyword_loc: () -> Location?
1736
1824
 
@@ -1767,6 +1855,8 @@ module Prism
1767
1855
  # bar(&args)
1768
1856
  # ^^^^^
1769
1857
  # ```
1858
+ #
1859
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyKCZhcmdzKQo)
1770
1860
  class BlockArgumentNode < Node
1771
1861
  @operator_loc: Location
1772
1862
 
@@ -1835,6 +1925,8 @@ module Prism
1835
1925
  # ^^^^
1836
1926
  # ```
1837
1927
  #
1928
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKCZhcmdzKQo)
1929
+ #
1838
1930
  # : () -> Prism::node?
1839
1931
  def expression: () -> Prism::node?
1840
1932
 
@@ -1849,6 +1941,8 @@ module Prism
1849
1941
  # ^
1850
1942
  # ```
1851
1943
  #
1944
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKCZhcmdzKQo)
1945
+ #
1852
1946
  # : () -> Location
1853
1947
  def operator_loc: () -> Location
1854
1948
 
@@ -1877,6 +1971,8 @@ module Prism
1877
1971
  # a { |; b| }
1878
1972
  # ^
1879
1973
  # ```
1974
+ #
1975
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSB7IHw7IGJ8IH0K)
1880
1976
  class BlockLocalVariableNode < Node
1881
1977
  @name: Symbol
1882
1978
 
@@ -1949,6 +2045,8 @@ module Prism
1949
2045
  # ^
1950
2046
  # ```
1951
2047
  #
2048
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSB7IHw7IGJ8IH0gIyBuYW1lIGA6YmAK)
2049
+ #
1952
2050
  # : () -> Symbol
1953
2051
  def name: () -> Symbol
1954
2052
 
@@ -1962,6 +2060,8 @@ module Prism
1962
2060
  # [1, 2, 3].each { |i| puts x }
1963
2061
  # ^^^^^^^^^^^^^^
1964
2062
  # ```
2063
+ #
2064
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0K)
1965
2065
  class BlockNode < Node
1966
2066
  @closing_loc: Location
1967
2067
 
@@ -2036,6 +2136,8 @@ module Prism
2036
2136
  # ^
2037
2137
  # ```
2038
2138
  #
2139
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0gIyBsb2NhbHM6IFs6aV0K)
2140
+ #
2039
2141
  # : () -> Array[Symbol]
2040
2142
  def locals: () -> Array[Symbol]
2041
2143
 
@@ -2053,6 +2155,8 @@ module Prism
2053
2155
  # ^^^^^^^^^^^
2054
2156
  # ```
2055
2157
  #
2158
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0KClsxLCAyLCAzXS5lYWNoIHsgcHV0cyBfMSB9CgpbMSwgMiwgM10uZWFjaCB7IHB1dHMgaXQgfQo)
2159
+ #
2056
2160
  # : () -> (BlockParametersNode | NumberedParametersNode | ItParametersNode)?
2057
2161
  def parameters: () -> (BlockParametersNode | NumberedParametersNode | ItParametersNode)?
2058
2162
 
@@ -2066,6 +2170,8 @@ module Prism
2066
2170
  # ^^^^^^
2067
2171
  # ```
2068
2172
  #
2173
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0K)
2174
+ #
2069
2175
  # : () -> (StatementsNode | BeginNode)?
2070
2176
  def body: () -> (StatementsNode | BeginNode)?
2071
2177
 
@@ -2080,6 +2186,8 @@ module Prism
2080
2186
  # ^
2081
2187
  # ```
2082
2188
  #
2189
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0K)
2190
+ #
2083
2191
  # : () -> Location
2084
2192
  def opening_loc: () -> Location
2085
2193
 
@@ -2101,6 +2209,8 @@ module Prism
2101
2209
  # ^
2102
2210
  # ```
2103
2211
  #
2212
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0K)
2213
+ #
2104
2214
  # : () -> Location
2105
2215
  def closing_loc: () -> Location
2106
2216
 
@@ -2138,6 +2248,8 @@ module Prism
2138
2248
  # ^^
2139
2249
  # end
2140
2250
  # ```
2251
+ #
2252
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJmIpCgplbmQK)
2141
2253
  class BlockParameterNode < Node
2142
2254
  @operator_loc: Location
2143
2255
 
@@ -2215,6 +2327,8 @@ module Prism
2215
2327
  # end
2216
2328
  # ```
2217
2329
  #
2330
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJmIpICMgbmFtZSBgOmJgCgplbmQK)
2331
+ #
2218
2332
  # : () -> Symbol?
2219
2333
  def name: () -> Symbol?
2220
2334
 
@@ -2229,6 +2343,8 @@ module Prism
2229
2343
  # ^
2230
2344
  # ```
2231
2345
  #
2346
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJmIpCg)
2347
+ #
2232
2348
  # : () -> Location?
2233
2349
  def name_loc: () -> Location?
2234
2350
 
@@ -2251,6 +2367,8 @@ module Prism
2251
2367
  # end
2252
2368
  # ```
2253
2369
  #
2370
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJmIpCgplbmQK)
2371
+ #
2254
2372
  # : () -> Location
2255
2373
  def operator_loc: () -> Location
2256
2374
 
@@ -2283,6 +2401,8 @@ module Prism
2283
2401
  # ^^^^^^^^^^^^^^^^^
2284
2402
  # end
2285
2403
  # ```
2404
+ #
2405
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
2286
2406
  class BlockParametersNode < Node
2287
2407
  @closing_loc: Location?
2288
2408
 
@@ -2359,6 +2479,8 @@ module Prism
2359
2479
  # end
2360
2480
  # ```
2361
2481
  #
2482
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
2483
+ #
2362
2484
  # : () -> ParametersNode?
2363
2485
  def parameters: () -> ParametersNode?
2364
2486
 
@@ -2376,6 +2498,8 @@ module Prism
2376
2498
  # end
2377
2499
  # ```
2378
2500
  #
2501
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
2502
+ #
2379
2503
  # : () -> Array[BlockLocalVariableNode]
2380
2504
  def locals: () -> Array[BlockLocalVariableNode]
2381
2505
 
@@ -2394,6 +2518,8 @@ module Prism
2394
2518
  # end
2395
2519
  # ```
2396
2520
  #
2521
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
2522
+ #
2397
2523
  # : () -> Location?
2398
2524
  def opening_loc: () -> Location?
2399
2525
 
@@ -2419,6 +2545,8 @@ module Prism
2419
2545
  # end
2420
2546
  # ```
2421
2547
  #
2548
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
2549
+ #
2422
2550
  # : () -> Location?
2423
2551
  def closing_loc: () -> Location?
2424
2552
 
@@ -2455,6 +2583,8 @@ module Prism
2455
2583
  # break foo
2456
2584
  # ^^^^^^^^^
2457
2585
  # ```
2586
+ #
2587
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YnJlYWsgZm9vCg)
2458
2588
  class BreakNode < Node
2459
2589
  @keyword_loc: Location
2460
2590
 
@@ -2523,6 +2653,8 @@ module Prism
2523
2653
  # ^^^
2524
2654
  # ```
2525
2655
  #
2656
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YnJlYWsgZm9vCg)
2657
+ #
2526
2658
  # : () -> ArgumentsNode?
2527
2659
  def arguments: () -> ArgumentsNode?
2528
2660
 
@@ -2537,6 +2669,8 @@ module Prism
2537
2669
  # ^^^^^
2538
2670
  # ```
2539
2671
  #
2672
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YnJlYWsgZm9vCg)
2673
+ #
2540
2674
  # : () -> Location
2541
2675
  def keyword_loc: () -> Location
2542
2676
 
@@ -2565,6 +2699,8 @@ module Prism
2565
2699
  # foo.bar &&= value
2566
2700
  # ^^^^^^^^^^^^^^^^^
2567
2701
  # ```
2702
+ #
2703
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
2568
2704
  class CallAndWriteNode < Node
2569
2705
  @value: Prism::node
2570
2706
 
@@ -2667,6 +2803,8 @@ module Prism
2667
2803
  # ^^^
2668
2804
  # ```
2669
2805
  #
2806
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
2807
+ #
2670
2808
  # : () -> Prism::node?
2671
2809
  def receiver: () -> Prism::node?
2672
2810
 
@@ -2681,6 +2819,8 @@ module Prism
2681
2819
  # ^
2682
2820
  # ```
2683
2821
  #
2822
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
2823
+ #
2684
2824
  # : () -> Location?
2685
2825
  def call_operator_loc: () -> Location?
2686
2826
 
@@ -2702,6 +2842,8 @@ module Prism
2702
2842
  # ^^^
2703
2843
  # ```
2704
2844
  #
2845
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
2846
+ #
2705
2847
  # : () -> Location?
2706
2848
  def message_loc: () -> Location?
2707
2849
 
@@ -2722,6 +2864,8 @@ module Prism
2722
2864
  # ^^^
2723
2865
  # ```
2724
2866
  #
2867
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUgIyByZWFkX25hbWUgYDpiYXJgCg)
2868
+ #
2725
2869
  # : () -> Symbol
2726
2870
  def read_name: () -> Symbol
2727
2871
 
@@ -2735,6 +2879,8 @@ module Prism
2735
2879
  # ^^^
2736
2880
  # ```
2737
2881
  #
2882
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUgIyB3cml0ZV9uYW1lIGA6YmFyPWAK)
2883
+ #
2738
2884
  # : () -> Symbol
2739
2885
  def write_name: () -> Symbol
2740
2886
 
@@ -2749,6 +2895,8 @@ module Prism
2749
2895
  # ^^^
2750
2896
  # ```
2751
2897
  #
2898
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
2899
+ #
2752
2900
  # : () -> Location
2753
2901
  def operator_loc: () -> Location
2754
2902
 
@@ -2769,6 +2917,8 @@ module Prism
2769
2917
  # ^^^^^
2770
2918
  # ```
2771
2919
  #
2920
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
2921
+ #
2772
2922
  # : () -> Prism::node
2773
2923
  def value: () -> Prism::node
2774
2924
 
@@ -2821,6 +2971,8 @@ module Prism
2821
2971
  # foo&.bar
2822
2972
  # ^^^^^^^^
2823
2973
  # ```
2974
+ #
2975
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vCgpmb28oKQoKK2ZvbwoKZm9vICsgYmFyCgpmb28uYmFyCgpmb28mLmJhcgo)
2824
2976
  class CallNode < Node
2825
2977
  @block: (BlockNode | BlockArgumentNode)?
2826
2978
 
@@ -2933,6 +3085,8 @@ module Prism
2933
3085
  # ^^^
2934
3086
  # ```
2935
3087
  #
3088
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcgoKK2ZvbwoKZm9vICsgYmFyCg)
3089
+ #
2936
3090
  # : () -> Prism::node?
2937
3091
  def receiver: () -> Prism::node?
2938
3092
 
@@ -2950,6 +3104,8 @@ module Prism
2950
3104
  # ^^
2951
3105
  # ```
2952
3106
  #
3107
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcgoKZm9vJi5iYXIK)
3108
+ #
2953
3109
  # : () -> Location?
2954
3110
  def call_operator_loc: () -> Location?
2955
3111
 
@@ -2970,6 +3126,8 @@ module Prism
2970
3126
  # ^^^
2971
3127
  # ```
2972
3128
  #
3129
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAjIG5hbWUgYDpmb29gCg)
3130
+ #
2973
3131
  # : () -> Symbol
2974
3132
  def name: () -> Symbol
2975
3133
 
@@ -2984,6 +3142,8 @@ module Prism
2984
3142
  # ^^^
2985
3143
  # ```
2986
3144
  #
3145
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcgo)
3146
+ #
2987
3147
  # : () -> Location?
2988
3148
  def message_loc: () -> Location?
2989
3149
 
@@ -3005,6 +3165,8 @@ module Prism
3005
3165
  # ^
3006
3166
  # ```
3007
3167
  #
3168
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGJhcikK)
3169
+ #
3008
3170
  # : () -> Location?
3009
3171
  def opening_loc: () -> Location?
3010
3172
 
@@ -3025,6 +3187,8 @@ module Prism
3025
3187
  # ^^^
3026
3188
  # ```
3027
3189
  #
3190
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGJhcikK)
3191
+ #
3028
3192
  # : () -> ArgumentsNode?
3029
3193
  def arguments: () -> ArgumentsNode?
3030
3194
 
@@ -3039,6 +3203,8 @@ module Prism
3039
3203
  # ^
3040
3204
  # ```
3041
3205
  #
3206
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGJhcikK)
3207
+ #
3042
3208
  # : () -> Location?
3043
3209
  def closing_loc: () -> Location?
3044
3210
 
@@ -3063,6 +3229,8 @@ module Prism
3063
3229
  # ^
3064
3230
  # ```
3065
3231
  #
3232
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IHZhbHVlCgpmb29bYmFyXSA9IHZhbHVlCg)
3233
+ #
3066
3234
  # : () -> Location?
3067
3235
  def equal_loc: () -> Location?
3068
3236
 
@@ -3083,6 +3251,8 @@ module Prism
3083
3251
  # ^^^^^^^^^
3084
3252
  # ```
3085
3253
  #
3254
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIHsgfGF8IGEgfQo)
3255
+ #
3086
3256
  # : () -> (BlockNode | BlockArgumentNode)?
3087
3257
  def block: () -> (BlockNode | BlockArgumentNode)?
3088
3258
 
@@ -3136,6 +3306,8 @@ module Prism
3136
3306
  # foo.bar += baz
3137
3307
  # ^^^^^^^^^^^^^^
3138
3308
  # ```
3309
+ #
3310
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSBiYXoK)
3139
3311
  class CallOperatorWriteNode < Node
3140
3312
  @value: Prism::node
3141
3313
 
@@ -3240,6 +3412,8 @@ module Prism
3240
3412
  # ^^^
3241
3413
  # ```
3242
3414
  #
3415
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
3416
+ #
3243
3417
  # : () -> Prism::node?
3244
3418
  def receiver: () -> Prism::node?
3245
3419
 
@@ -3254,6 +3428,8 @@ module Prism
3254
3428
  # ^
3255
3429
  # ```
3256
3430
  #
3431
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
3432
+ #
3257
3433
  # : () -> Location?
3258
3434
  def call_operator_loc: () -> Location?
3259
3435
 
@@ -3275,6 +3451,8 @@ module Prism
3275
3451
  # ^^^
3276
3452
  # ```
3277
3453
  #
3454
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
3455
+ #
3278
3456
  # : () -> Location?
3279
3457
  def message_loc: () -> Location?
3280
3458
 
@@ -3295,6 +3473,8 @@ module Prism
3295
3473
  # ^^^
3296
3474
  # ```
3297
3475
  #
3476
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZSAjIHJlYWRfbmFtZSBgOmJhcmAK)
3477
+ #
3298
3478
  # : () -> Symbol
3299
3479
  def read_name: () -> Symbol
3300
3480
 
@@ -3308,6 +3488,8 @@ module Prism
3308
3488
  # ^^^
3309
3489
  # ```
3310
3490
  #
3491
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZSAjIHdyaXRlX25hbWUgYDpiYXI9YAo)
3492
+ #
3311
3493
  # : () -> Symbol
3312
3494
  def write_name: () -> Symbol
3313
3495
 
@@ -3321,6 +3503,8 @@ module Prism
3321
3503
  # ^
3322
3504
  # ```
3323
3505
  #
3506
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZSAjIGJpbmFyeV9vcGVyYXRvciBgOitgCg)
3507
+ #
3324
3508
  # : () -> Symbol
3325
3509
  def binary_operator: () -> Symbol
3326
3510
 
@@ -3335,6 +3519,8 @@ module Prism
3335
3519
  # ^^
3336
3520
  # ```
3337
3521
  #
3522
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
3523
+ #
3338
3524
  # : () -> Location
3339
3525
  def binary_operator_loc: () -> Location
3340
3526
 
@@ -3355,6 +3541,8 @@ module Prism
3355
3541
  # ^^^^^
3356
3542
  # ```
3357
3543
  #
3544
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
3545
+ #
3358
3546
  # : () -> Prism::node
3359
3547
  def value: () -> Prism::node
3360
3548
 
@@ -3384,6 +3572,8 @@ module Prism
3384
3572
  # foo.bar ||= value
3385
3573
  # ^^^^^^^^^^^^^^^^^
3386
3574
  # ```
3575
+ #
3576
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
3387
3577
  class CallOrWriteNode < Node
3388
3578
  @value: Prism::node
3389
3579
 
@@ -3486,6 +3676,8 @@ module Prism
3486
3676
  # ^^^
3487
3677
  # ```
3488
3678
  #
3679
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
3680
+ #
3489
3681
  # : () -> Prism::node?
3490
3682
  def receiver: () -> Prism::node?
3491
3683
 
@@ -3500,6 +3692,8 @@ module Prism
3500
3692
  # ^
3501
3693
  # ```
3502
3694
  #
3695
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
3696
+ #
3503
3697
  # : () -> Location?
3504
3698
  def call_operator_loc: () -> Location?
3505
3699
 
@@ -3521,6 +3715,8 @@ module Prism
3521
3715
  # ^^^
3522
3716
  # ```
3523
3717
  #
3718
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
3719
+ #
3524
3720
  # : () -> Location?
3525
3721
  def message_loc: () -> Location?
3526
3722
 
@@ -3541,6 +3737,8 @@ module Prism
3541
3737
  # ^^^
3542
3738
  # ```
3543
3739
  #
3740
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUgIyByZWFkX25hbWUgYDpiYXJgCg)
3741
+ #
3544
3742
  # : () -> Symbol
3545
3743
  def read_name: () -> Symbol
3546
3744
 
@@ -3554,6 +3752,8 @@ module Prism
3554
3752
  # ^^^
3555
3753
  # ```
3556
3754
  #
3755
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUgIyB3cml0ZV9uYW1lIGA6YmFyPWAK)
3756
+ #
3557
3757
  # : () -> Symbol
3558
3758
  def write_name: () -> Symbol
3559
3759
 
@@ -3568,6 +3768,8 @@ module Prism
3568
3768
  # ^^^
3569
3769
  # ```
3570
3770
  #
3771
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
3772
+ #
3571
3773
  # : () -> Location
3572
3774
  def operator_loc: () -> Location
3573
3775
 
@@ -3588,6 +3790,8 @@ module Prism
3588
3790
  # ^^^^^
3589
3791
  # ```
3590
3792
  #
3793
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
3794
+ #
3591
3795
  # : () -> Prism::node
3592
3796
  def value: () -> Prism::node
3593
3797
 
@@ -3633,6 +3837,8 @@ module Prism
3633
3837
  # for foo.bar in baz do end
3634
3838
  # ^^^^^^^
3635
3839
  # ```
3840
+ #
3841
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciwgPSAxCgpiZWdpbgpyZXNjdWUgPT4gZm9vLmJhcgoKZW5kCgpmb3IgZm9vLmJhciBpbiBiYXogZG8gZW5kCg)
3636
3842
  class CallTargetNode < Node
3637
3843
  @message_loc: Location
3638
3844
 
@@ -3729,6 +3935,8 @@ module Prism
3729
3935
  # ^^^
3730
3936
  # ```
3731
3937
  #
3938
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IDEK)
3939
+ #
3732
3940
  # : () -> Prism::node
3733
3941
  def receiver: () -> Prism::node
3734
3942
 
@@ -3743,6 +3951,8 @@ module Prism
3743
3951
  # ^
3744
3952
  # ```
3745
3953
  #
3954
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IDEK)
3955
+ #
3746
3956
  # : () -> Location
3747
3957
  def call_operator_loc: () -> Location
3748
3958
 
@@ -3763,6 +3973,8 @@ module Prism
3763
3973
  # ^^^
3764
3974
  # ```
3765
3975
  #
3976
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IDEgIyBuYW1lIGA6Zm9vYAo)
3977
+ #
3766
3978
  # : () -> Symbol
3767
3979
  def name: () -> Symbol
3768
3980
 
@@ -3777,6 +3989,8 @@ module Prism
3777
3989
  # ^^^
3778
3990
  # ```
3779
3991
  #
3992
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IDEK)
3993
+ #
3780
3994
  # : () -> Location
3781
3995
  def message_loc: () -> Location
3782
3996
 
@@ -3813,6 +4027,8 @@ module Prism
3813
4027
  # foo => [bar => baz]
3814
4028
  # ^^^^^^^^^^
3815
4029
  # ```
4030
+ #
4031
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IFtiYXIgPT4gYmF6XQo)
3816
4032
  class CapturePatternNode < Node
3817
4033
  @operator_loc: Location
3818
4034
 
@@ -3883,6 +4099,8 @@ module Prism
3883
4099
  # ^^^
3884
4100
  # ```
3885
4101
  #
4102
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
4103
+ #
3886
4104
  # : () -> Prism::node
3887
4105
  def value: () -> Prism::node
3888
4106
 
@@ -3896,6 +4114,8 @@ module Prism
3896
4114
  # ^^^
3897
4115
  # ```
3898
4116
  #
4117
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
4118
+ #
3899
4119
  # : () -> LocalVariableTargetNode
3900
4120
  def target: () -> LocalVariableTargetNode
3901
4121
 
@@ -3910,6 +4130,8 @@ module Prism
3910
4130
  # ^^
3911
4131
  # ```
3912
4132
  #
4133
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
4134
+ #
3913
4135
  # : () -> Location
3914
4136
  def operator_loc: () -> Location
3915
4137
 
@@ -3940,6 +4162,8 @@ module Prism
3940
4162
  # end
3941
4163
  # ^^^^^^^^^
3942
4164
  # ```
4165
+ #
4166
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlCmluIGZhbHNlCmVuZAo)
3943
4167
  class CaseMatchNode < Node
3944
4168
  @end_keyword_loc: Location
3945
4169
 
@@ -4014,6 +4238,8 @@ module Prism
4014
4238
  # ^^^^
4015
4239
  # ```
4016
4240
  #
4241
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZW5kCg)
4242
+ #
4017
4243
  # : () -> Prism::node?
4018
4244
  def predicate: () -> Prism::node?
4019
4245
 
@@ -4027,6 +4253,8 @@ module Prism
4027
4253
  # ^^^^^^^^
4028
4254
  # ```
4029
4255
  #
4256
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZW5kCg)
4257
+ #
4030
4258
  # : () -> Array[InNode]
4031
4259
  def conditions: () -> Array[InNode]
4032
4260
 
@@ -4040,6 +4268,8 @@ module Prism
4040
4268
  # ^^^^^^^^^
4041
4269
  # ```
4042
4270
  #
4271
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZWxzZTsgZW5kCg)
4272
+ #
4043
4273
  # : () -> ElseNode?
4044
4274
  def else_clause: () -> ElseNode?
4045
4275
 
@@ -4054,6 +4284,8 @@ module Prism
4054
4284
  # ^^^^
4055
4285
  # ```
4056
4286
  #
4287
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZW5kCg)
4288
+ #
4057
4289
  # : () -> Location
4058
4290
  def case_keyword_loc: () -> Location
4059
4291
 
@@ -4075,6 +4307,8 @@ module Prism
4075
4307
  # ^^^
4076
4308
  # ```
4077
4309
  #
4310
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZW5kCg)
4311
+ #
4078
4312
  # : () -> Location
4079
4313
  def end_keyword_loc: () -> Location
4080
4314
 
@@ -4113,6 +4347,8 @@ module Prism
4113
4347
  # end
4114
4348
  # ^^^^^^^^^^
4115
4349
  # ```
4350
+ #
4351
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlCndoZW4gZmFsc2UKZW5kCg)
4116
4352
  class CaseNode < Node
4117
4353
  @end_keyword_loc: Location
4118
4354
 
@@ -4187,6 +4423,8 @@ module Prism
4187
4423
  # ^^^^
4188
4424
  # ```
4189
4425
  #
4426
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbmQK)
4427
+ #
4190
4428
  # : () -> Prism::node?
4191
4429
  def predicate: () -> Prism::node?
4192
4430
 
@@ -4200,6 +4438,8 @@ module Prism
4200
4438
  # ^^^^^^^^^^
4201
4439
  # ```
4202
4440
  #
4441
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbmQK)
4442
+ #
4203
4443
  # : () -> Array[WhenNode]
4204
4444
  def conditions: () -> Array[WhenNode]
4205
4445
 
@@ -4213,6 +4453,8 @@ module Prism
4213
4453
  # ^^^^^^^^^
4214
4454
  # ```
4215
4455
  #
4456
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbHNlOyBlbmQK)
4457
+ #
4216
4458
  # : () -> ElseNode?
4217
4459
  def else_clause: () -> ElseNode?
4218
4460
 
@@ -4227,6 +4469,8 @@ module Prism
4227
4469
  # ^^^^
4228
4470
  # ```
4229
4471
  #
4472
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbmQK)
4473
+ #
4230
4474
  # : () -> Location
4231
4475
  def case_keyword_loc: () -> Location
4232
4476
 
@@ -4248,6 +4492,8 @@ module Prism
4248
4492
  # ^^^
4249
4493
  # ```
4250
4494
  #
4495
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbmQK)
4496
+ #
4251
4497
  # : () -> Location
4252
4498
  def end_keyword_loc: () -> Location
4253
4499
 
@@ -4284,6 +4530,8 @@ module Prism
4284
4530
  # class Foo end
4285
4531
  # ^^^^^^^^^^^^^
4286
4532
  # ```
4533
+ #
4534
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIGVuZAo)
4287
4535
  class ClassNode < Node
4288
4536
  @name: Symbol
4289
4537
 
@@ -4373,6 +4621,8 @@ module Prism
4373
4621
  # ^^^^^
4374
4622
  # ```
4375
4623
  #
4624
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIGVuZAo)
4625
+ #
4376
4626
  # : () -> Location
4377
4627
  def class_keyword_loc: () -> Location
4378
4628
 
@@ -4402,6 +4652,8 @@ module Prism
4402
4652
  # ^
4403
4653
  # ```
4404
4654
  #
4655
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIDwgQmFyCg)
4656
+ #
4405
4657
  # : () -> Location?
4406
4658
  def inheritance_operator_loc: () -> Location?
4407
4659
 
@@ -4422,6 +4674,8 @@ module Prism
4422
4674
  # ^^^
4423
4675
  # ```
4424
4676
  #
4677
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIDwgQmFyCg)
4678
+ #
4425
4679
  # : () -> Prism::node?
4426
4680
  def superclass: () -> Prism::node?
4427
4681
 
@@ -4435,6 +4689,8 @@ module Prism
4435
4689
  # ^^^
4436
4690
  # ```
4437
4691
  #
4692
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vOyBiYXI7IGVuZAo)
4693
+ #
4438
4694
  # : () -> (StatementsNode | BeginNode)?
4439
4695
  def body: () -> (StatementsNode | BeginNode)?
4440
4696
 
@@ -4449,6 +4705,8 @@ module Prism
4449
4705
  # ^^^
4450
4706
  # ```
4451
4707
  #
4708
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIGVuZAo)
4709
+ #
4452
4710
  # : () -> Location
4453
4711
  def end_keyword_loc: () -> Location
4454
4712
 
@@ -4468,6 +4726,8 @@ module Prism
4468
4726
  # class Foo end # name `:Foo`
4469
4727
  # ```
4470
4728
  #
4729
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIGVuZCAjIG5hbWUgYDpGb29gCg)
4730
+ #
4471
4731
  # : () -> Symbol
4472
4732
  def name: () -> Symbol
4473
4733
 
@@ -4505,6 +4765,8 @@ module Prism
4505
4765
  # @@target &&= value
4506
4766
  # ^^^^^^^^^^^^^^^^^^
4507
4767
  # ```
4768
+ #
4769
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlCg)
4508
4770
  class ClassVariableAndWriteNode < Node
4509
4771
  @value: Prism::node
4510
4772
 
@@ -4577,6 +4839,8 @@ module Prism
4577
4839
  # ^^^^^^^^
4578
4840
  # ```
4579
4841
  #
4842
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlICMgbmFtZSBgOkBAdGFyZ2V0YAo)
4843
+ #
4580
4844
  # : () -> Symbol
4581
4845
  def name: () -> Symbol
4582
4846
 
@@ -4591,6 +4855,8 @@ module Prism
4591
4855
  # ^^^^^^^^
4592
4856
  # ```
4593
4857
  #
4858
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlCg)
4859
+ #
4594
4860
  # : () -> Location
4595
4861
  def name_loc: () -> Location
4596
4862
 
@@ -4612,6 +4878,8 @@ module Prism
4612
4878
  # ^^^
4613
4879
  # ```
4614
4880
  #
4881
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlCg)
4882
+ #
4615
4883
  # : () -> Location
4616
4884
  def operator_loc: () -> Location
4617
4885
 
@@ -4632,6 +4900,8 @@ module Prism
4632
4900
  # ^^^^^
4633
4901
  # ```
4634
4902
  #
4903
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlCg)
4904
+ #
4635
4905
  # : () -> Prism::node
4636
4906
  def value: () -> Prism::node
4637
4907
 
@@ -4653,6 +4923,8 @@ module Prism
4653
4923
  # @@target += value
4654
4924
  # ^^^^^^^^^^^^^^^^^
4655
4925
  # ```
4926
+ #
4927
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgKz0gdmFsdWUK)
4656
4928
  class ClassVariableOperatorWriteNode < Node
4657
4929
  @binary_operator: Symbol
4658
4930
 
@@ -4783,6 +5055,8 @@ module Prism
4783
5055
  # @@target ||= value
4784
5056
  # ^^^^^^^^^^^^^^^^^^
4785
5057
  # ```
5058
+ #
5059
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgfHw9IHZhbHVlCg)
4786
5060
  class ClassVariableOrWriteNode < Node
4787
5061
  @value: Prism::node
4788
5062
 
@@ -4911,6 +5185,8 @@ module Prism
4911
5185
  # @@foo
4912
5186
  # ^^^^^
4913
5187
  # ```
5188
+ #
5189
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28K)
4914
5190
  class ClassVariableReadNode < Node
4915
5191
  @name: Symbol
4916
5192
 
@@ -4978,6 +5254,8 @@ module Prism
4978
5254
  # @@_test # name `:@@_test`
4979
5255
  # ```
4980
5256
  #
5257
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBhYmMgICAjIG5hbWUgYDpAQGFiY2AKCkBAX3Rlc3QgIyBuYW1lIGA6QEBfdGVzdGAK)
5258
+ #
4981
5259
  # : () -> Symbol
4982
5260
  def name: () -> Symbol
4983
5261
 
@@ -4991,6 +5269,8 @@ module Prism
4991
5269
  # @@foo, @@bar = baz
4992
5270
  # ^^^^^ ^^^^^
4993
5271
  # ```
5272
+ #
5273
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28sIEBAYmFyID0gYmF6Cg)
4994
5274
  class ClassVariableTargetNode < Node
4995
5275
  @name: Symbol
4996
5276
 
@@ -5065,6 +5345,8 @@ module Prism
5065
5345
  # @@foo = 1
5066
5346
  # ^^^^^^^^^
5067
5347
  # ```
5348
+ #
5349
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28gPSAxCg)
5068
5350
  class ClassVariableWriteNode < Node
5069
5351
  @operator_loc: Location
5070
5352
 
@@ -5138,6 +5420,8 @@ module Prism
5138
5420
  # @@_test = :test # name `@@_test`
5139
5421
  # ```
5140
5422
  #
5423
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBhYmMgPSAxMjMgICAgICMgbmFtZSBgQEBhYmNgCgpAQF90ZXN0ID0gOnRlc3QgIyBuYW1lIGBAQF90ZXN0YAo)
5424
+ #
5141
5425
  # : () -> Symbol
5142
5426
  def name: () -> Symbol
5143
5427
 
@@ -5152,6 +5436,8 @@ module Prism
5152
5436
  # ^^^^^
5153
5437
  # ```
5154
5438
  #
5439
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28gPSA6YmFyCg)
5440
+ #
5155
5441
  # : () -> Location
5156
5442
  def name_loc: () -> Location
5157
5443
 
@@ -5175,6 +5461,8 @@ module Prism
5175
5461
  # ^^^
5176
5462
  # ```
5177
5463
  #
5464
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28gPSA6YmFyCgpAQF94eXogPSAxMjMK)
5465
+ #
5178
5466
  # : () -> Prism::node
5179
5467
  def value: () -> Prism::node
5180
5468
 
@@ -5189,6 +5477,8 @@ module Prism
5189
5477
  # ^
5190
5478
  # ```
5191
5479
  #
5480
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28gPSA6YmFyCg)
5481
+ #
5192
5482
  # : () -> Location
5193
5483
  def operator_loc: () -> Location
5194
5484
 
@@ -5217,6 +5507,8 @@ module Prism
5217
5507
  # Target &&= value
5218
5508
  # ^^^^^^^^^^^^^^^^
5219
5509
  # ```
5510
+ #
5511
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#VGFyZ2V0ICYmPSB2YWx1ZQo)
5220
5512
  class ConstantAndWriteNode < Node
5221
5513
  @value: Prism::node
5222
5514
 
@@ -5345,6 +5637,8 @@ module Prism
5345
5637
  # Target += value
5346
5638
  # ^^^^^^^^^^^^^^^
5347
5639
  # ```
5640
+ #
5641
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#VGFyZ2V0ICs9IHZhbHVlCg)
5348
5642
  class ConstantOperatorWriteNode < Node
5349
5643
  @binary_operator: Symbol
5350
5644
 
@@ -5475,6 +5769,8 @@ module Prism
5475
5769
  # Target ||= value
5476
5770
  # ^^^^^^^^^^^^^^^^
5477
5771
  # ```
5772
+ #
5773
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#VGFyZ2V0IHx8PSB2YWx1ZQo)
5478
5774
  class ConstantOrWriteNode < Node
5479
5775
  @value: Prism::node
5480
5776
 
@@ -5603,6 +5899,8 @@ module Prism
5603
5899
  # Parent::Child &&= value
5604
5900
  # ^^^^^^^^^^^^^^^^^^^^^^^
5605
5901
  # ```
5902
+ #
5903
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#UGFyZW50OjpDaGlsZCAmJj0gdmFsdWUK)
5606
5904
  class ConstantPathAndWriteNode < Node
5607
5905
  @value: Prism::node
5608
5906
 
@@ -5713,6 +6011,8 @@ module Prism
5713
6011
  # Foo::Bar
5714
6012
  # ^^^^^^^^
5715
6013
  # ```
6014
+ #
6015
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vOjpCYXIK)
5716
6016
  class ConstantPathNode < Node
5717
6017
  @name_loc: Location
5718
6018
 
@@ -5791,6 +6091,8 @@ module Prism
5791
6091
  # ^^^
5792
6092
  # ```
5793
6093
  #
6094
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vOjpCYXIKCnNlbGY6OlRlc3QKCmEuYjo6Qwo)
6095
+ #
5794
6096
  # : () -> Prism::node?
5795
6097
  def parent: () -> Prism::node?
5796
6098
 
@@ -5816,6 +6118,8 @@ module Prism
5816
6118
  # ^^
5817
6119
  # ```
5818
6120
  #
6121
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OjpGb28KCk9uZTo6VHdvCg)
6122
+ #
5819
6123
  # : () -> Location
5820
6124
  def delimiter_loc: () -> Location
5821
6125
 
@@ -5840,6 +6144,8 @@ module Prism
5840
6144
  # ^^^
5841
6145
  # ```
5842
6146
  #
6147
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OjpGb28KCk9uZTo6VHdvCg)
6148
+ #
5843
6149
  # : () -> Location
5844
6150
  def name_loc: () -> Location
5845
6151
 
@@ -5868,6 +6174,8 @@ module Prism
5868
6174
  # Parent::Child += value
5869
6175
  # ^^^^^^^^^^^^^^^^^^^^^^
5870
6176
  # ```
6177
+ #
6178
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#UGFyZW50OjpDaGlsZCArPSB2YWx1ZQo)
5871
6179
  class ConstantPathOperatorWriteNode < Node
5872
6180
  @binary_operator: Symbol
5873
6181
 
@@ -5980,6 +6288,8 @@ module Prism
5980
6288
  # Parent::Child ||= value
5981
6289
  # ^^^^^^^^^^^^^^^^^^^^^^^
5982
6290
  # ```
6291
+ #
6292
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#UGFyZW50OjpDaGlsZCB8fD0gdmFsdWUK)
5983
6293
  class ConstantPathOrWriteNode < Node
5984
6294
  @value: Prism::node
5985
6295
 
@@ -6090,6 +6400,8 @@ module Prism
6090
6400
  # Foo::Foo, Bar::Bar = baz
6091
6401
  # ^^^^^^^^ ^^^^^^^^
6092
6402
  # ```
6403
+ #
6404
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vOjpGb28sIEJhcjo6QmFyID0gYmF6Cg)
6093
6405
  class ConstantPathTargetNode < Node
6094
6406
  @name_loc: Location
6095
6407
 
@@ -6224,6 +6536,8 @@ module Prism
6224
6536
  # ::Foo::Bar = 1
6225
6537
  # ^^^^^^^^^^^^^^
6226
6538
  # ```
6539
+ #
6540
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OjpGb28gPSAxCgpGb286OkJhciA9IDEKCjo6Rm9vOjpCYXIgPSAxCg)
6227
6541
  class ConstantPathWriteNode < Node
6228
6542
  @value: Prism::node
6229
6543
 
@@ -6297,6 +6611,8 @@ module Prism
6297
6611
  # ^^^^^
6298
6612
  # ```
6299
6613
  #
6614
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vOjpCYXIgPSAxCgo6OkZvbyA9IDphYmMK)
6615
+ #
6300
6616
  # : () -> ConstantPathNode
6301
6617
  def target: () -> ConstantPathNode
6302
6618
 
@@ -6311,6 +6627,8 @@ module Prism
6311
6627
  # ^
6312
6628
  # ```
6313
6629
  #
6630
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OjpBQkMgPSAxMjMK)
6631
+ #
6314
6632
  # : () -> Location
6315
6633
  def operator_loc: () -> Location
6316
6634
 
@@ -6331,6 +6649,8 @@ module Prism
6331
6649
  # ^^^^
6332
6650
  # ```
6333
6651
  #
6652
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rk9POjpCQVIgPSA6YWJjCg)
6653
+ #
6334
6654
  # : () -> Prism::node
6335
6655
  def value: () -> Prism::node
6336
6656
 
@@ -6352,6 +6672,8 @@ module Prism
6352
6672
  # Foo
6353
6673
  # ^^^
6354
6674
  # ```
6675
+ #
6676
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vCg)
6355
6677
  class ConstantReadNode < Node
6356
6678
  @name: Symbol
6357
6679
 
@@ -6419,6 +6741,8 @@ module Prism
6419
6741
  # SOME_CONSTANT # name `:SOME_CONSTANT`
6420
6742
  # ```
6421
6743
  #
6744
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WCAgICAgICAgICAgICAgIyBuYW1lIGA6WGAKClNPTUVfQ09OU1RBTlQgICMgbmFtZSBgOlNPTUVfQ09OU1RBTlRgCg)
6745
+ #
6422
6746
  # : () -> Symbol
6423
6747
  def name: () -> Symbol
6424
6748
 
@@ -6432,6 +6756,8 @@ module Prism
6432
6756
  # Foo, Bar = baz
6433
6757
  # ^^^ ^^^
6434
6758
  # ```
6759
+ #
6760
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vLCBCYXIgPSBiYXoK)
6435
6761
  class ConstantTargetNode < Node
6436
6762
  @name: Symbol
6437
6763
 
@@ -6506,6 +6832,8 @@ module Prism
6506
6832
  # Foo = 1
6507
6833
  # ^^^^^^^
6508
6834
  # ```
6835
+ #
6836
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vID0gMQo)
6509
6837
  class ConstantWriteNode < Node
6510
6838
  @operator_loc: Location
6511
6839
 
@@ -6579,6 +6907,8 @@ module Prism
6579
6907
  # XYZ = 1 # name `:XYZ`
6580
6908
  # ```
6581
6909
  #
6910
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vID0gOmJhciAjIG5hbWUgYDpGb29gCgpYWVogPSAxICAgICMgbmFtZSBgOlhZWmAK)
6911
+ #
6582
6912
  # : () -> Symbol
6583
6913
  def name: () -> Symbol
6584
6914
 
@@ -6593,6 +6923,8 @@ module Prism
6593
6923
  # ^^^
6594
6924
  # ```
6595
6925
  #
6926
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rk9PID0gMQo)
6927
+ #
6596
6928
  # : () -> Location
6597
6929
  def name_loc: () -> Location
6598
6930
 
@@ -6616,6 +6948,8 @@ module Prism
6616
6948
  # ^^^^^^^^^
6617
6949
  # ```
6618
6950
  #
6951
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rk9PID0gOmJhcgoKTXlDbGFzcyA9IENsYXNzLm5ldwo)
6952
+ #
6619
6953
  # : () -> Prism::node
6620
6954
  def value: () -> Prism::node
6621
6955
 
@@ -6630,6 +6964,8 @@ module Prism
6630
6964
  # ^
6631
6965
  # ```
6632
6966
  #
6967
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rk9PID0gOmJhcgo)
6968
+ #
6633
6969
  # : () -> Location
6634
6970
  def operator_loc: () -> Location
6635
6971
 
@@ -6659,6 +6995,8 @@ module Prism
6659
6995
  # end
6660
6996
  # ^^^^^^^^^^
6661
6997
  # ```
6998
+ #
6999
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIG1ldGhvZAplbmQK)
6662
7000
  class DefNode < Node
6663
7001
  @end_keyword_loc: Location?
6664
7002
 
@@ -6947,6 +7285,8 @@ module Prism
6947
7285
  # defined?(a)
6948
7286
  # ^^^^^^^^^^^
6949
7287
  # ```
7288
+ #
7289
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmaW5lZD8oYSkK)
6950
7290
  class DefinedNode < Node
6951
7291
  @keyword_loc: Location
6952
7292
 
@@ -7099,6 +7439,8 @@ module Prism
7099
7439
  # if a then b else c end
7100
7440
  # ^^^^^^^^^^
7101
7441
  # ```
7442
+ #
7443
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgYSB0aGVuIGIgZWxzZSBjIGVuZAo)
7102
7444
  class ElseNode < Node
7103
7445
  @end_keyword_loc: Location?
7104
7446
 
@@ -7225,6 +7567,8 @@ module Prism
7225
7567
  # "foo #{bar}"
7226
7568
  # ^^^^^^
7227
7569
  # ```
7570
+ #
7571
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ImZvbyAje2Jhcn0iCg)
7228
7572
  class EmbeddedStatementsNode < Node
7229
7573
  @closing_loc: Location
7230
7574
 
@@ -7351,6 +7695,8 @@ module Prism
7351
7695
  # "foo #@bar"
7352
7696
  # ^^^^^
7353
7697
  # ```
7698
+ #
7699
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ImZvbyAjQGJhciIK)
7354
7700
  class EmbeddedVariableNode < Node
7355
7701
  @variable: InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode
7356
7702
 
@@ -7455,6 +7801,8 @@ module Prism
7455
7801
  # bar
7456
7802
  # end
7457
7803
  # ```
7804
+ #
7805
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4KICBmb28KZW5zdXJlCgogIGJhcgplbmQK)
7458
7806
  class EnsureNode < Node
7459
7807
  @end_keyword_loc: Location
7460
7808
 
@@ -7650,6 +7998,8 @@ module Prism
7650
7998
  # false
7651
7999
  # ^^^^^
7652
8000
  # ```
8001
+ #
8002
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZmFsc2UK)
7653
8003
  class FalseNode < Node
7654
8004
  # Initialize a new FalseNode node.
7655
8005
  #
@@ -7723,6 +8073,8 @@ module Prism
7723
8073
  # foo => *bar, baz, *qux
7724
8074
  # ^^^^^^^^^^^^^^^
7725
8075
  # ```
8076
+ #
8077
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJheiwgKnF1eAoKZm9vIGluIFsqYmFyLCBiYXosICpxdXhdCgpmb28gaW4gRm9vKCpiYXIsIGJheiwgKnF1eCkKCmZvbyA9PiAqYmFyLCBiYXosICpxdXgK)
7726
8078
  class FindPatternNode < Node
7727
8079
  @closing_loc: Location?
7728
8080
 
@@ -7799,6 +8151,8 @@ module Prism
7799
8151
  # ^^^
7800
8152
  # ```
7801
8153
  #
8154
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIEZvbygqYmFyLCBiYXosICpxdXgpCg)
8155
+ #
7802
8156
  # : () -> (ConstantPathNode | ConstantReadNode)?
7803
8157
  def constant: () -> (ConstantPathNode | ConstantReadNode)?
7804
8158
 
@@ -7815,6 +8169,8 @@ module Prism
7815
8169
  # ^^^^
7816
8170
  # ```
7817
8171
  #
8172
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJheiwgKnF1eAoKZm9vIGluIEZvbygqYmFyLCBiYXosICpxdXgpCg)
8173
+ #
7818
8174
  # : () -> SplatNode
7819
8175
  def left: () -> SplatNode
7820
8176
 
@@ -7831,6 +8187,8 @@ module Prism
7831
8187
  # ^^^^^^
7832
8188
  # ```
7833
8189
  #
8190
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJheiwgKnF1eAoKZm9vIGluIEZvbygqYmFyLCBiYXosIDEsICpxdXgpCg)
8191
+ #
7834
8192
  # : () -> Array[Prism::node]
7835
8193
  def requireds: () -> Array[Prism::node]
7836
8194
 
@@ -7847,6 +8205,8 @@ module Prism
7847
8205
  # ^^^^
7848
8206
  # ```
7849
8207
  #
8208
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJheiwgKnF1eAoKZm9vIGluIEZvbygqYmFyLCBiYXosICpxdXgpCg)
8209
+ #
7850
8210
  # : () -> SplatNode
7851
8211
  def right: () -> SplatNode
7852
8212
 
@@ -7864,6 +8224,8 @@ module Prism
7864
8224
  # ^
7865
8225
  # ```
7866
8226
  #
8227
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsqYmFyLCBiYXosICpxdXhdCgpmb28gaW4gRm9vKCpiYXIsIGJheiwgKnF1eCkK)
8228
+ #
7867
8229
  # : () -> Location?
7868
8230
  def opening_loc: () -> Location?
7869
8231
 
@@ -7888,6 +8250,8 @@ module Prism
7888
8250
  # ^
7889
8251
  # ```
7890
8252
  #
8253
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsqYmFyLCBiYXosICpxdXhdCgpmb28gaW4gRm9vKCpiYXIsIGJheiwgKnF1eCkK)
8254
+ #
7891
8255
  # : () -> Location?
7892
8256
  def closing_loc: () -> Location?
7893
8257
 
@@ -7924,6 +8288,8 @@ module Prism
7924
8288
  # baz if foo .. bar
7925
8289
  # ^^^^^^^^^^
7926
8290
  # ```
8291
+ #
8292
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmF6IGlmIGZvbyAuLiBiYXIK)
7927
8293
  class FlipFlopNode < Node
7928
8294
  @operator_loc: Location
7929
8295
 
@@ -8040,6 +8406,8 @@ module Prism
8040
8406
  # 1.0
8041
8407
  # ^^^
8042
8408
  # ```
8409
+ #
8410
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4wCg)
8043
8411
  class FloatNode < Node
8044
8412
  @value: Float
8045
8413
 
@@ -8114,6 +8482,8 @@ module Prism
8114
8482
  # for i in a end
8115
8483
  # ^^^^^^^^^^^^^^
8116
8484
  # ```
8485
+ #
8486
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
8117
8487
  class ForNode < Node
8118
8488
  @end_keyword_loc: Location
8119
8489
 
@@ -8192,6 +8562,8 @@ module Prism
8192
8562
  # ^
8193
8563
  # ```
8194
8564
  #
8565
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
8566
+ #
8195
8567
  # : () -> (LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode)
8196
8568
  def index: () -> (LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode)
8197
8569
 
@@ -8205,6 +8577,8 @@ module Prism
8205
8577
  # ^
8206
8578
  # ```
8207
8579
  #
8580
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
8581
+ #
8208
8582
  # : () -> Prism::node
8209
8583
  def collection: () -> Prism::node
8210
8584
 
@@ -8220,6 +8594,8 @@ module Prism
8220
8594
  # end
8221
8595
  # ```
8222
8596
  #
8597
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYQogIGZvbyhpKQoKZW5kCg)
8598
+ #
8223
8599
  # : () -> StatementsNode?
8224
8600
  def statements: () -> StatementsNode?
8225
8601
 
@@ -8234,6 +8610,8 @@ module Prism
8234
8610
  # ^^^
8235
8611
  # ```
8236
8612
  #
8613
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
8614
+ #
8237
8615
  # : () -> Location
8238
8616
  def for_keyword_loc: () -> Location
8239
8617
 
@@ -8255,6 +8633,8 @@ module Prism
8255
8633
  # ^^
8256
8634
  # ```
8257
8635
  #
8636
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
8637
+ #
8258
8638
  # : () -> Location
8259
8639
  def in_keyword_loc: () -> Location
8260
8640
 
@@ -8276,6 +8656,8 @@ module Prism
8276
8656
  # ^^
8277
8657
  # ```
8278
8658
  #
8659
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBkbyBlbmQK)
8660
+ #
8279
8661
  # : () -> Location?
8280
8662
  def do_keyword_loc: () -> Location?
8281
8663
 
@@ -8297,6 +8679,8 @@ module Prism
8297
8679
  # ^^^
8298
8680
  # ```
8299
8681
  #
8682
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
8683
+ #
8300
8684
  # : () -> Location
8301
8685
  def end_keyword_loc: () -> Location
8302
8686
 
@@ -8351,6 +8735,8 @@ module Prism
8351
8735
  # ^^^
8352
8736
  # end
8353
8737
  # ```
8738
+ #
8739
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGZvbyguLi4pCiAgYmFyKC4uLikKCmVuZAo)
8354
8740
  class ForwardingArgumentsNode < Node
8355
8741
  # Initialize a new ForwardingArgumentsNode node.
8356
8742
  #
@@ -8416,6 +8802,8 @@ module Prism
8416
8802
  # ^^^
8417
8803
  # end
8418
8804
  # ```
8805
+ #
8806
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGZvbyguLi4pCgplbmQK)
8419
8807
  class ForwardingParameterNode < Node
8420
8808
  # Initialize a new ForwardingParameterNode node.
8421
8809
  #
@@ -8484,6 +8872,8 @@ module Prism
8484
8872
  # ^^^^^^^^^^^^^
8485
8873
  #
8486
8874
  # ```
8875
+ #
8876
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#c3VwZXIKCnN1cGVyIHsgMTIzIH0K)
8487
8877
  # If it has any other arguments, it would be a `SuperNode` instead.
8488
8878
  class ForwardingSuperNode < Node
8489
8879
  @block: BlockNode?
@@ -8589,6 +8979,8 @@ module Prism
8589
8979
  # $target &&= value
8590
8980
  # ^^^^^^^^^^^^^^^^^
8591
8981
  # ```
8982
+ #
8983
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JHRhcmdldCAmJj0gdmFsdWUK)
8592
8984
  class GlobalVariableAndWriteNode < Node
8593
8985
  @value: Prism::node
8594
8986
 
@@ -8717,6 +9109,8 @@ module Prism
8717
9109
  # $target += value
8718
9110
  # ^^^^^^^^^^^^^^^^
8719
9111
  # ```
9112
+ #
9113
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JHRhcmdldCArPSB2YWx1ZQo)
8720
9114
  class GlobalVariableOperatorWriteNode < Node
8721
9115
  @binary_operator: Symbol
8722
9116
 
@@ -8847,6 +9241,8 @@ module Prism
8847
9241
  # $target ||= value
8848
9242
  # ^^^^^^^^^^^^^^^^^
8849
9243
  # ```
9244
+ #
9245
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JHRhcmdldCB8fD0gdmFsdWUK)
8850
9246
  class GlobalVariableOrWriteNode < Node
8851
9247
  @value: Prism::node
8852
9248
 
@@ -8975,6 +9371,8 @@ module Prism
8975
9371
  # $foo
8976
9372
  # ^^^^
8977
9373
  # ```
9374
+ #
9375
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbwo)
8978
9376
  class GlobalVariableReadNode < Node
8979
9377
  @name: Symbol
8980
9378
 
@@ -9042,6 +9440,8 @@ module Prism
9042
9440
  # $_Test # name `:$_Test`
9043
9441
  # ```
9044
9442
  #
9443
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyAgICMgbmFtZSBgOiRmb29gCgokX1Rlc3QgIyBuYW1lIGA6JF9UZXN0YAo)
9444
+ #
9045
9445
  # : () -> Symbol
9046
9446
  def name: () -> Symbol
9047
9447
 
@@ -9055,6 +9455,8 @@ module Prism
9055
9455
  # $foo, $bar = baz
9056
9456
  # ^^^^ ^^^^
9057
9457
  # ```
9458
+ #
9459
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbywgJGJhciA9IGJhego)
9058
9460
  class GlobalVariableTargetNode < Node
9059
9461
  @name: Symbol
9060
9462
 
@@ -9129,6 +9531,8 @@ module Prism
9129
9531
  # $foo = 1
9130
9532
  # ^^^^^^^^
9131
9533
  # ```
9534
+ #
9535
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDEK)
9132
9536
  class GlobalVariableWriteNode < Node
9133
9537
  @operator_loc: Location
9134
9538
 
@@ -9202,6 +9606,8 @@ module Prism
9202
9606
  # $_Test = 123 # name `:$_Test`
9203
9607
  # ```
9204
9608
  #
9609
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDpiYXIgICMgbmFtZSBgOiRmb29gCgokX1Rlc3QgPSAxMjMgIyBuYW1lIGA6JF9UZXN0YAo)
9610
+ #
9205
9611
  # : () -> Symbol
9206
9612
  def name: () -> Symbol
9207
9613
 
@@ -9216,6 +9622,8 @@ module Prism
9216
9622
  # ^^^^
9217
9623
  # ```
9218
9624
  #
9625
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDpiYXIK)
9626
+ #
9219
9627
  # : () -> Location
9220
9628
  def name_loc: () -> Location
9221
9629
 
@@ -9239,6 +9647,8 @@ module Prism
9239
9647
  # ^^^
9240
9648
  # ```
9241
9649
  #
9650
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDpiYXIKCiQteHl6ID0gMTIzCg)
9651
+ #
9242
9652
  # : () -> Prism::node
9243
9653
  def value: () -> Prism::node
9244
9654
 
@@ -9253,6 +9663,8 @@ module Prism
9253
9663
  # ^
9254
9664
  # ```
9255
9665
  #
9666
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDpiYXIK)
9667
+ #
9256
9668
  # : () -> Location
9257
9669
  def operator_loc: () -> Location
9258
9670
 
@@ -9281,6 +9693,8 @@ module Prism
9281
9693
  # { a => b }
9282
9694
  # ^^^^^^^^^^
9283
9695
  # ```
9696
+ #
9697
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhID0-IGIgfQo)
9284
9698
  class HashNode < Node
9285
9699
  @closing_loc: Location
9286
9700
 
@@ -9352,6 +9766,8 @@ module Prism
9352
9766
  # ^
9353
9767
  # ```
9354
9768
  #
9769
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhID0-IGIgfQo)
9770
+ #
9355
9771
  # : () -> Location
9356
9772
  def opening_loc: () -> Location
9357
9773
 
@@ -9375,6 +9791,8 @@ module Prism
9375
9791
  # ^^^^^
9376
9792
  # ```
9377
9793
  #
9794
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhOiBiIH0KCnsgKipmb28gfQo)
9795
+ #
9378
9796
  # : () -> Array[AssocNode | AssocSplatNode]
9379
9797
  def elements: () -> Array[AssocNode | AssocSplatNode]
9380
9798
 
@@ -9389,6 +9807,8 @@ module Prism
9389
9807
  # ^
9390
9808
  # ```
9391
9809
  #
9810
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhID0-IGIgfQo)
9811
+ #
9392
9812
  # : () -> Location
9393
9813
  def closing_loc: () -> Location
9394
9814
 
@@ -9434,6 +9854,8 @@ module Prism
9434
9854
  # foo in { a: 1, b: 2 }
9435
9855
  # ^^^^^^^^^^^^^^
9436
9856
  # ```
9857
+ #
9858
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSwgYjogMiB9Cgpmb28gPT4geyBhOiAxLCBiOiAyLCAqKmMgfQoKZm9vID0-IEJhclthOiAxLCBiOiAyXQoKZm9vIGluIHsgYTogMSwgYjogMiB9Cg)
9437
9859
  class HashPatternNode < Node
9438
9860
  @closing_loc: Location?
9439
9861
 
@@ -9511,6 +9933,8 @@ module Prism
9511
9933
  # ^^^^^^^^
9512
9934
  # ```
9513
9935
  #
9936
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IEJhclthOiAxLCBiOiAyXQoKZm9vID0-IEJhcjo6QmF6W2E6IDEsIGI6IDJdCg)
9937
+ #
9514
9938
  # : () -> (ConstantPathNode | ConstantReadNode)?
9515
9939
  def constant: () -> (ConstantPathNode | ConstantReadNode)?
9516
9940
 
@@ -9524,6 +9948,8 @@ module Prism
9524
9948
  # ^^^^^^^^
9525
9949
  # ```
9526
9950
  #
9951
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSwgYjosICoqIH0K)
9952
+ #
9527
9953
  # : () -> Array[AssocNode]
9528
9954
  def elements: () -> Array[AssocNode]
9529
9955
 
@@ -9543,6 +9969,8 @@ module Prism
9543
9969
  # ^^^^^
9544
9970
  # ```
9545
9971
  #
9972
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSwgYjosICoqYyB9Cgpmb28gPT4geyBhOiAxLCBiOiwgKiogfQoKZm9vID0-IHsgYTogMSwgYjosICoqbmlsIH0K)
9973
+ #
9546
9974
  # : () -> (AssocSplatNode | NoKeywordsParameterNode)?
9547
9975
  def rest: () -> (AssocSplatNode | NoKeywordsParameterNode)?
9548
9976
 
@@ -9560,6 +9988,8 @@ module Prism
9560
9988
  # ^
9561
9989
  # ```
9562
9990
  #
9991
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSB9Cgpmb28gPT4gQmFyW2E6IDFdCg)
9992
+ #
9563
9993
  # : () -> Location?
9564
9994
  def opening_loc: () -> Location?
9565
9995
 
@@ -9584,6 +10014,8 @@ module Prism
9584
10014
  # ^
9585
10015
  # ```
9586
10016
  #
10017
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSB9Cgpmb28gPT4gQmFyW2E6IDFdCg)
10018
+ #
9587
10019
  # : () -> Location?
9588
10020
  def closing_loc: () -> Location?
9589
10021
 
@@ -9626,6 +10058,8 @@ module Prism
9626
10058
  # foo ? bar : baz
9627
10059
  # ^^^^^^^^^^^^^^^
9628
10060
  # ```
10061
+ #
10062
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIGlmIGZvbwoKaWYgZm9vIHRoZW4gYmFyIGVuZAoKZm9vID8gYmFyIDogYmF6Cg)
9629
10063
  class IfNode < Node
9630
10064
  @end_keyword_loc: Location?
9631
10065
 
@@ -9703,6 +10137,8 @@ module Prism
9703
10137
  # ^^
9704
10138
  #
9705
10139
  # ```
10140
+ #
10141
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIGlmIGZvbwo)
9706
10142
  # The `if_keyword_loc` field will be `nil` when the `IfNode` represents a ternary expression.
9707
10143
  #
9708
10144
  # : () -> Location?
@@ -9733,6 +10169,8 @@ module Prism
9733
10169
  # ^^^
9734
10170
  # ```
9735
10171
  #
10172
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vCgogIGJhcgplbmQKCmJhciBpZiBmb28KCmZvbyA_IGJhciA6IGJhego)
10173
+ #
9736
10174
  # : () -> Prism::node
9737
10175
  def predicate: () -> Prism::node
9738
10176
 
@@ -9750,6 +10188,8 @@ module Prism
9750
10188
  # ^
9751
10189
  # ```
9752
10190
  #
10191
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vIHRoZW4gYmFyIGVuZAoKYSA_IGIgOiBjCg)
10192
+ #
9753
10193
  # : () -> Location?
9754
10194
  def then_keyword_loc: () -> Location?
9755
10195
 
@@ -9774,6 +10214,8 @@ module Prism
9774
10214
  # end
9775
10215
  # ```
9776
10216
  #
10217
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vCiAgYmFyCgogIGJhegoKZW5kCg)
10218
+ #
9777
10219
  # : () -> StatementsNode?
9778
10220
  def statements: () -> StatementsNode?
9779
10221
 
@@ -9796,6 +10238,8 @@ module Prism
9796
10238
  # ^^^^^^^^^^^^
9797
10239
  # ```
9798
10240
  #
10241
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vCiAgYmFyCmVsc2lmIGJhegoKICBxdXgKCmVuZAoKaWYgZm9vIHRoZW4gYmFyIGVsc2UgYmF6IGVuZAo)
10242
+ #
9799
10243
  # : () -> (ElseNode | IfNode)?
9800
10244
  def subsequent: () -> (ElseNode | IfNode)?
9801
10245
 
@@ -9812,6 +10256,8 @@ module Prism
9812
10256
  # ^^^
9813
10257
  # ```
9814
10258
  #
10259
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vCiAgYmFyCmVuZAo)
10260
+ #
9815
10261
  # : () -> Location?
9816
10262
  def end_keyword_loc: () -> Location?
9817
10263
 
@@ -9856,6 +10302,8 @@ module Prism
9856
10302
  # 1.0i
9857
10303
  # ^^^^
9858
10304
  # ```
10305
+ #
10306
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4waQo)
9859
10307
  class ImaginaryNode < Node
9860
10308
  @numeric: FloatNode | IntegerNode | RationalNode
9861
10309
 
@@ -9936,6 +10384,8 @@ module Prism
9936
10384
  # foo in { bar: }
9937
10385
  # ^^^^
9938
10386
  # ```
10387
+ #
10388
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBmb286IH0KCnsgRm9vOiB9Cgpmb28gaW4geyBiYXI6IH0K)
9939
10389
  class ImplicitNode < Node
9940
10390
  @value: LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode
9941
10391
 
@@ -10019,6 +10469,8 @@ module Prism
10019
10469
  # foo, = bar
10020
10470
  # ^
10021
10471
  # ```
10472
+ #
10473
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIHsgfGJhcix8IH0KCmZvbyBpbiBbYmFyLF0KCmZvciBmb28sIGluIGJhciBkbyBlbmQKCmZvbywgPSBiYXIK)
10022
10474
  class ImplicitRestNode < Node
10023
10475
  # Initialize a new ImplicitRestNode node.
10024
10476
  #
@@ -10083,6 +10535,8 @@ module Prism
10083
10535
  # case a; in b then c end
10084
10536
  # ^^^^^^^^^^^
10085
10537
  # ```
10538
+ #
10539
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSBhOyBpbiBiIHRoZW4gYyBlbmQK)
10086
10540
  class InNode < Node
10087
10541
  @then_keyword_loc: Location?
10088
10542
 
@@ -10219,6 +10673,8 @@ module Prism
10219
10673
  # foo.bar[baz] &&= value
10220
10674
  # ^^^^^^^^^^^^^^^^^^^^^^
10221
10675
  # ```
10676
+ #
10677
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcltiYXpdICYmPSB2YWx1ZQo)
10222
10678
  class IndexAndWriteNode < Node
10223
10679
  @value: Prism::node
10224
10680
 
@@ -10451,6 +10907,8 @@ module Prism
10451
10907
  # foo.bar[baz] += value
10452
10908
  # ^^^^^^^^^^^^^^^^^^^^^
10453
10909
  # ```
10910
+ #
10911
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcltiYXpdICs9IHZhbHVlCg)
10454
10912
  class IndexOperatorWriteNode < Node
10455
10913
  @value: Prism::node
10456
10914
 
@@ -10685,6 +11143,8 @@ module Prism
10685
11143
  # foo.bar[baz] ||= value
10686
11144
  # ^^^^^^^^^^^^^^^^^^^^^^
10687
11145
  # ```
11146
+ #
11147
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcltiYXpdIHx8PSB2YWx1ZQo)
10688
11148
  class IndexOrWriteNode < Node
10689
11149
  @value: Prism::node
10690
11150
 
@@ -10925,6 +11385,8 @@ module Prism
10925
11385
  # for foo[bar] in baz do end
10926
11386
  # ^^^^^^^^
10927
11387
  # ```
11388
+ #
11389
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vW2Jhcl0sID0gMQoKYmVnaW4KcmVzY3VlID0-IGZvb1tiYXJdCgplbmQKCmZvciBmb29bYmFyXSBpbiBiYXogZG8gZW5kCg)
10928
11390
  class IndexTargetNode < Node
10929
11391
  @block: BlockArgumentNode?
10930
11392
 
@@ -11095,6 +11557,8 @@ module Prism
11095
11557
  # @target &&= value
11096
11558
  # ^^^^^^^^^^^^^^^^^
11097
11559
  # ```
11560
+ #
11561
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHRhcmdldCAmJj0gdmFsdWUK)
11098
11562
  class InstanceVariableAndWriteNode < Node
11099
11563
  @value: Prism::node
11100
11564
 
@@ -11223,6 +11687,8 @@ module Prism
11223
11687
  # @target += value
11224
11688
  # ^^^^^^^^^^^^^^^^
11225
11689
  # ```
11690
+ #
11691
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHRhcmdldCArPSB2YWx1ZQo)
11226
11692
  class InstanceVariableOperatorWriteNode < Node
11227
11693
  @binary_operator: Symbol
11228
11694
 
@@ -11353,6 +11819,8 @@ module Prism
11353
11819
  # @target ||= value
11354
11820
  # ^^^^^^^^^^^^^^^^^
11355
11821
  # ```
11822
+ #
11823
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHRhcmdldCB8fD0gdmFsdWUK)
11356
11824
  class InstanceVariableOrWriteNode < Node
11357
11825
  @value: Prism::node
11358
11826
 
@@ -11481,6 +11949,8 @@ module Prism
11481
11949
  # @foo
11482
11950
  # ^^^^
11483
11951
  # ```
11952
+ #
11953
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QGZvbwo)
11484
11954
  class InstanceVariableReadNode < Node
11485
11955
  @name: Symbol
11486
11956
 
@@ -11548,6 +12018,8 @@ module Prism
11548
12018
  # @_test # name `:@_test`
11549
12019
  # ```
11550
12020
  #
12021
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHggICAgICMgbmFtZSBgOkB4YAoKQF90ZXN0ICMgbmFtZSBgOkBfdGVzdGAK)
12022
+ #
11551
12023
  # : () -> Symbol
11552
12024
  def name: () -> Symbol
11553
12025
 
@@ -11561,6 +12033,8 @@ module Prism
11561
12033
  # @foo, @bar = baz
11562
12034
  # ^^^^ ^^^^
11563
12035
  # ```
12036
+ #
12037
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QGZvbywgQGJhciA9IGJhego)
11564
12038
  class InstanceVariableTargetNode < Node
11565
12039
  @name: Symbol
11566
12040
 
@@ -11635,6 +12109,8 @@ module Prism
11635
12109
  # @foo = 1
11636
12110
  # ^^^^^^^^
11637
12111
  # ```
12112
+ #
12113
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QGZvbyA9IDEK)
11638
12114
  class InstanceVariableWriteNode < Node
11639
12115
  @operator_loc: Location
11640
12116
 
@@ -11708,6 +12184,8 @@ module Prism
11708
12184
  # @_foo = "bar" # name `@_foo`
11709
12185
  # ```
11710
12186
  #
12187
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHggPSA6eSAgICAgICAjIG5hbWUgYDpAeGAKCkBfZm9vID0gImJhciIgIyBuYW1lIGBAX2Zvb2AK)
12188
+ #
11711
12189
  # : () -> Symbol
11712
12190
  def name: () -> Symbol
11713
12191
 
@@ -11722,6 +12200,8 @@ module Prism
11722
12200
  # ^^^
11723
12201
  # ```
11724
12202
  #
12203
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QF94ID0gMQo)
12204
+ #
11725
12205
  # : () -> Location
11726
12206
  def name_loc: () -> Location
11727
12207
 
@@ -11745,6 +12225,8 @@ module Prism
11745
12225
  # ^^^^
11746
12226
  # ```
11747
12227
  #
12228
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QGZvbyA9IDpiYXIKCkBfeCA9IDEyMzQK)
12229
+ #
11748
12230
  # : () -> Prism::node
11749
12231
  def value: () -> Prism::node
11750
12232
 
@@ -11759,6 +12241,8 @@ module Prism
11759
12241
  # ^
11760
12242
  # ```
11761
12243
  #
12244
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHggPSB5Cg)
12245
+ #
11762
12246
  # : () -> Location
11763
12247
  def operator_loc: () -> Location
11764
12248
 
@@ -11787,6 +12271,8 @@ module Prism
11787
12271
  # 1
11788
12272
  # ^
11789
12273
  # ```
12274
+ #
12275
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MQo)
11790
12276
  class IntegerNode < Node
11791
12277
  @value: Integer
11792
12278
 
@@ -11885,6 +12371,8 @@ module Prism
11885
12371
  # if /foo #{bar} baz/ then end
11886
12372
  # ^^^^^^^^^^^^^^^^
11887
12373
  # ```
12374
+ #
12375
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgL2ZvbyAje2Jhcn0gYmF6LyB0aGVuIGVuZAo)
11888
12376
  class InterpolatedMatchLastLineNode < Node
11889
12377
  @closing_loc: Location
11890
12378
 
@@ -12077,6 +12565,8 @@ module Prism
12077
12565
  # /foo #{bar} baz/
12078
12566
  # ^^^^^^^^^^^^^^^^
12079
12567
  # ```
12568
+ #
12569
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#L2ZvbyAje2Jhcn0gYmF6Lwo)
12080
12570
  class InterpolatedRegularExpressionNode < Node
12081
12571
  @closing_loc: Location
12082
12572
 
@@ -12269,6 +12759,8 @@ module Prism
12269
12759
  # "foo #{bar} baz"
12270
12760
  # ^^^^^^^^^^^^^^^^
12271
12761
  # ```
12762
+ #
12763
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ImZvbyAje2Jhcn0gYmF6Igo)
12272
12764
  class InterpolatedStringNode < Node
12273
12765
  @closing_loc: Location?
12274
12766
 
@@ -12407,6 +12899,8 @@ module Prism
12407
12899
  # :"foo #{bar} baz"
12408
12900
  # ^^^^^^^^^^^^^^^^^
12409
12901
  # ```
12902
+ #
12903
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OiJmb28gI3tiYXJ9IGJheiIK)
12410
12904
  class InterpolatedSymbolNode < Node
12411
12905
  @closing_loc: Location?
12412
12906
 
@@ -12533,6 +13027,8 @@ module Prism
12533
13027
  # `foo #{bar} baz`
12534
13028
  # ^^^^^^^^^^^^^^^^
12535
13029
  # ```
13030
+ #
13031
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YGZvbyAje2Jhcn0gYmF6YAo)
12536
13032
  class InterpolatedXStringNode < Node
12537
13033
  @closing_loc: Location
12538
13034
 
@@ -12659,6 +13155,8 @@ module Prism
12659
13155
  # -> { it }
12660
13156
  # ^^
12661
13157
  # ```
13158
+ #
13159
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4geyBpdCB9Cg)
12662
13160
  class ItLocalVariableReadNode < Node
12663
13161
  # Initialize a new ItLocalVariableReadNode node.
12664
13162
  #
@@ -12723,6 +13221,8 @@ module Prism
12723
13221
  # -> { it + it }
12724
13222
  # ^^^^^^^^^^^^^^
12725
13223
  # ```
13224
+ #
13225
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4geyBpdCArIGl0IH0K)
12726
13226
  class ItParametersNode < Node
12727
13227
  # Initialize a new ItParametersNode node.
12728
13228
  #
@@ -12787,6 +13287,8 @@ module Prism
12787
13287
  # foo(a: b)
12788
13288
  # ^^^^
12789
13289
  # ```
13290
+ #
13291
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGE6IGIpCg)
12790
13292
  class KeywordHashNode < Node
12791
13293
  @elements: Array[AssocNode | AssocSplatNode]
12792
13294
 
@@ -12868,6 +13370,8 @@ module Prism
12868
13370
  # ^^^
12869
13371
  # end
12870
13372
  # ```
13373
+ #
13374
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoKipiKQoKZW5kCg)
12871
13375
  class KeywordRestParameterNode < Node
12872
13376
  @operator_loc: Location
12873
13377
 
@@ -12992,6 +13496,8 @@ module Prism
12992
13496
  # ->(value) { value * 2 }
12993
13497
  # ^^^^^^^^^^^^^^^^^^^^^^^
12994
13498
  # ```
13499
+ #
13500
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4odmFsdWUpIHsgdmFsdWUgKiAyIH0K)
12995
13501
  class LambdaNode < Node
12996
13502
  @body: (StatementsNode | BeginNode)?
12997
13503
 
@@ -13164,6 +13670,8 @@ module Prism
13164
13670
  # target &&= value
13165
13671
  # ^^^^^^^^^^^^^^^^
13166
13672
  # ```
13673
+ #
13674
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dGFyZ2V0ICYmPSB2YWx1ZQo)
13167
13675
  class LocalVariableAndWriteNode < Node
13168
13676
  @depth: Integer
13169
13677
 
@@ -13302,6 +13810,8 @@ module Prism
13302
13810
  # target += value
13303
13811
  # ^^^^^^^^^^^^^^^
13304
13812
  # ```
13813
+ #
13814
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dGFyZ2V0ICs9IHZhbHVlCg)
13305
13815
  class LocalVariableOperatorWriteNode < Node
13306
13816
  @depth: Integer
13307
13817
 
@@ -13442,6 +13952,8 @@ module Prism
13442
13952
  # target ||= value
13443
13953
  # ^^^^^^^^^^^^^^^^
13444
13954
  # ```
13955
+ #
13956
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dGFyZ2V0IHx8PSB2YWx1ZQo)
13445
13957
  class LocalVariableOrWriteNode < Node
13446
13958
  @depth: Integer
13447
13959
 
@@ -13580,6 +14092,8 @@ module Prism
13580
14092
  # foo
13581
14093
  # ^^^
13582
14094
  # ```
14095
+ #
14096
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vCg)
13583
14097
  class LocalVariableReadNode < Node
13584
14098
  @name: Symbol
13585
14099
 
@@ -13649,12 +14163,16 @@ module Prism
13649
14163
  # _Test # name `:_Test`
13650
14164
  #
13651
14165
  # ```
14166
+ #
14167
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eCAgICAgICMgbmFtZSBgOnhgCgpfVGVzdCAgIyBuYW1lIGA6X1Rlc3RgCg)
13652
14168
  # Note that this can also be an underscore followed by a number for the default block parameters.
13653
14169
  #
13654
14170
  # ```rb
13655
14171
  # _1 # name `:_1`
13656
14172
  # ```
13657
14173
  #
14174
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#XzEgICAgICMgbmFtZSBgOl8xYAo)
14175
+ #
13658
14176
  # : () -> Symbol
13659
14177
  def name: () -> Symbol
13660
14178
 
@@ -13669,6 +14187,8 @@ module Prism
13669
14187
  # bar = 2; tap { bar } # depth 1
13670
14188
  #
13671
14189
  # ```
14190
+ #
14191
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gMTsgZm9vICMgZGVwdGggMAoKYmFyID0gMjsgdGFwIHsgYmFyIH0gIyBkZXB0aCAxCg)
13672
14192
  # 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).
13673
14193
  #
13674
14194
  # : () -> Integer
@@ -13687,6 +14207,8 @@ module Prism
13687
14207
  # foo => baz
13688
14208
  # ^^^
13689
14209
  # ```
14210
+ #
14211
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLCBiYXIgPSBiYXoKCmZvbyA9PiBiYXoK)
13690
14212
  class LocalVariableTargetNode < Node
13691
14213
  @name: Symbol
13692
14214
 
@@ -13771,6 +14293,8 @@ module Prism
13771
14293
  # foo = 1
13772
14294
  # ^^^^^^^
13773
14295
  # ```
14296
+ #
14297
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gMQo)
13774
14298
  class LocalVariableWriteNode < Node
13775
14299
  @operator_loc: Location
13776
14300
 
@@ -13846,6 +14370,8 @@ module Prism
13846
14370
  # abc = 123 # name `:abc`
13847
14371
  # ```
13848
14372
  #
14373
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gOmJhciAjIG5hbWUgYDpmb29gCgphYmMgPSAxMjMgICMgbmFtZSBgOmFiY2AK)
14374
+ #
13849
14375
  # : () -> Symbol
13850
14376
  def name: () -> Symbol
13851
14377
 
@@ -13860,6 +14386,8 @@ module Prism
13860
14386
  # tap { foo = 1 } # depth 1
13861
14387
  #
13862
14388
  # ```
14389
+ #
14390
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gMSAgICAgICAgICMgZGVwdGggMAoKdGFwIHsgZm9vID0gMSB9ICMgZGVwdGggMQo)
13863
14391
  # 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).
13864
14392
  #
13865
14393
  # : () -> Integer
@@ -13876,6 +14404,8 @@ module Prism
13876
14404
  # ^^^
13877
14405
  # ```
13878
14406
  #
14407
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gOmJhcgo)
14408
+ #
13879
14409
  # : () -> Location
13880
14410
  def name_loc: () -> Location
13881
14411
 
@@ -13899,12 +14429,16 @@ module Prism
13899
14429
  # ^^^^
13900
14430
  #
13901
14431
  # ```
14432
+ #
14433
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gOmJhcgoKYWJjID0gMTIzNAo)
13902
14434
  # Note that since the name of a local variable is known before the value is parsed, it is valid for a local variable to appear within the value of its own write.
13903
14435
  #
13904
14436
  # ```rb
13905
14437
  # foo = foo
13906
14438
  # ```
13907
14439
  #
14440
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gZm9vCg)
14441
+ #
13908
14442
  # : () -> Prism::node
13909
14443
  def value: () -> Prism::node
13910
14444
 
@@ -13919,6 +14453,8 @@ module Prism
13919
14453
  # ^
13920
14454
  # ```
13921
14455
  #
14456
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eCA9IDp5Cg)
14457
+ #
13922
14458
  # : () -> Location
13923
14459
  def operator_loc: () -> Location
13924
14460
 
@@ -13947,6 +14483,8 @@ module Prism
13947
14483
  # if /foo/i then end
13948
14484
  # ^^^^^^
13949
14485
  # ```
14486
+ #
14487
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgL2Zvby9pIHRoZW4gZW5kCg)
13950
14488
  class MatchLastLineNode < Node
13951
14489
  @unescaped: String
13952
14490
 
@@ -14165,6 +14703,8 @@ module Prism
14165
14703
  # foo in bar
14166
14704
  # ^^^^^^^^^^
14167
14705
  # ```
14706
+ #
14707
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIGJhcgo)
14168
14708
  class MatchPredicateNode < Node
14169
14709
  @keyword_loc: Location
14170
14710
 
@@ -14275,6 +14815,8 @@ module Prism
14275
14815
  # foo => bar
14276
14816
  # ^^^^^^^^^^
14277
14817
  # ```
14818
+ #
14819
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
14278
14820
  class MatchRequiredNode < Node
14279
14821
  @operator_loc: Location
14280
14822
 
@@ -14345,6 +14887,8 @@ module Prism
14345
14887
  # ^^^
14346
14888
  # ```
14347
14889
  #
14890
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
14891
+ #
14348
14892
  # : () -> Prism::node
14349
14893
  def value: () -> Prism::node
14350
14894
 
@@ -14360,6 +14904,8 @@ module Prism
14360
14904
  # ^
14361
14905
  #
14362
14906
  # ```
14907
+ #
14908
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGEgIyBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gd3JpdGluZyBgYSA9IGZvb2AK)
14363
14909
  # Using an explicit `Array` or combining expressions with `,` will result in a `ArrayPatternNode`. This can be preceded by a constant.
14364
14910
  #
14365
14911
  # ```rb
@@ -14373,6 +14919,8 @@ module Prism
14373
14919
  # ^^^^^^^^^
14374
14920
  #
14375
14921
  # ```
14922
+ #
14923
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IFthXQoKZm9vID0-IGEsIGIKCmZvbyA9PiBCYXJbYSwgYl0K)
14376
14924
  # If the array pattern contains at least two wildcard matches, a `FindPatternNode` is created instead.
14377
14925
  #
14378
14926
  # ```rb
@@ -14380,6 +14928,8 @@ module Prism
14380
14928
  # ^^^^^
14381
14929
  #
14382
14930
  # ```
14931
+ #
14932
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-ICosIDEsICphCg)
14383
14933
  # Using an explicit `Hash` or a constant with square brackets and hash keys in the square brackets will result in a `HashPatternNode`.
14384
14934
  #
14385
14935
  # ```rb
@@ -14390,6 +14940,8 @@ module Prism
14390
14940
  # foo => Bar[**]
14391
14941
  #
14392
14942
  # ```
14943
+ #
14944
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSwgYjogfQoKZm9vID0-IEJhclthOiAxLCBiOl0KCmZvbyA9PiBCYXJbKipdCg)
14393
14945
  # To use any variable that needs run time evaluation, pinning is required. This results in a `PinnedVariableNode`
14394
14946
  #
14395
14947
  # ```rb
@@ -14397,18 +14949,24 @@ module Prism
14397
14949
  # ^^
14398
14950
  #
14399
14951
  # ```
14952
+ #
14953
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IF5hCg)
14400
14954
  # Similar, any expression can be used with pinning. This results in a `PinnedExpressionNode`.
14401
14955
  #
14402
14956
  # ```rb
14403
14957
  # foo => ^(a + 1)
14404
14958
  #
14405
14959
  # ```
14960
+ #
14961
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IF4oYSArIDEpCg)
14406
14962
  # Anything else will result in the regular node for that expression, for example a `ConstantReadNode`.
14407
14963
  #
14408
14964
  # ```rb
14409
14965
  # foo => CONST
14410
14966
  # ```
14411
14967
  #
14968
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IENPTlNUCg)
14969
+ #
14412
14970
  # : () -> Prism::node
14413
14971
  def pattern: () -> Prism::node
14414
14972
 
@@ -14423,6 +14981,8 @@ module Prism
14423
14981
  # ^^
14424
14982
  # ```
14425
14983
  #
14984
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
14985
+ #
14426
14986
  # : () -> Location
14427
14987
  def operator_loc: () -> Location
14428
14988
 
@@ -14451,6 +15011,8 @@ module Prism
14451
15011
  # /(?<foo>bar)/ =~ baz
14452
15012
  # ^^^^^^^^^^^^^^^^^^^^
14453
15013
  # ```
15014
+ #
15015
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Lyg_PGZvbz5iYXIpLyA9fiBiYXoK)
14454
15016
  class MatchWriteNode < Node
14455
15017
  @call: CallNode
14456
15018
 
@@ -14535,6 +15097,8 @@ module Prism
14535
15097
  # module Foo end
14536
15098
  # ^^^^^^^^^^^^^^
14537
15099
  # ```
15100
+ #
15101
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bW9kdWxlIEZvbyBlbmQK)
14538
15102
  class ModuleNode < Node
14539
15103
  @name: Symbol
14540
15104
 
@@ -14692,12 +15256,16 @@ module Prism
14692
15256
  # ^^^^^^
14693
15257
  #
14694
15258
  # ```
15259
+ #
15260
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMpID0gMSwgMiwgMwo)
14695
15261
  # This can be a part of `MultiWriteNode` as above, or the target of a `for` loop
14696
15262
  #
14697
15263
  # ```rb
14698
15264
  # for a, b in [[1, 2], [3, 4]]
14699
15265
  # ^^^^
14700
15266
  # ```
15267
+ #
15268
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGEsIGIgaW4gW1sxLCAyXSwgWzMsIDRdXQo)
14701
15269
  class MultiTargetNode < Node
14702
15270
  @rparen_loc: Location?
14703
15271
 
@@ -14772,6 +15340,8 @@ module Prism
14772
15340
  # ^^^^
14773
15341
  #
14774
15342
  # ```
15343
+ #
15344
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMsICopID0gMSwgMiwgMywgNCwgNQo)
14775
15345
  # The splat node can be absent, in that case all target expressions are in the left field.
14776
15346
  #
14777
15347
  # ```rb
@@ -14779,6 +15349,8 @@ module Prism
14779
15349
  # ^^^^
14780
15350
  # ```
14781
15351
  #
15352
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMpID0gMSwgMiwgMywgNCwgNQo)
15353
+ #
14782
15354
  # : () -> Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode]
14783
15355
  def lefts: () -> Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode]
14784
15356
 
@@ -14792,6 +15364,8 @@ module Prism
14792
15364
  # ^^
14793
15365
  #
14794
15366
  # ```
15367
+ #
15368
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsICpjKSA9IDEsIDIsIDMsIDQK)
14795
15369
  # The variable can be empty, this results in a `SplatNode` with a `nil` expression field.
14796
15370
  #
14797
15371
  # ```rb
@@ -14799,6 +15373,8 @@ module Prism
14799
15373
  # ^
14800
15374
  #
14801
15375
  # ```
15376
+ #
15377
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsICopID0gMSwgMiwgMywgNAo)
14802
15378
  # If the `*` is omitted, this field will contain an `ImplicitRestNode`
14803
15379
  #
14804
15380
  # ```rb
@@ -14806,6 +15382,8 @@ module Prism
14806
15382
  # ^
14807
15383
  # ```
14808
15384
  #
15385
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsKSA9IDEsIDIsIDMsIDQK)
15386
+ #
14809
15387
  # : () -> (ImplicitRestNode | SplatNode)?
14810
15388
  def rest: () -> (ImplicitRestNode | SplatNode)?
14811
15389
 
@@ -14819,6 +15397,8 @@ module Prism
14819
15397
  # ^^^^
14820
15398
  # ```
14821
15399
  #
15400
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKCosIGIsIGMpID0gMSwgMiwgMywgNCwgNQo)
15401
+ #
14822
15402
  # : () -> Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode]
14823
15403
  def rights: () -> Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode]
14824
15404
 
@@ -14833,6 +15413,8 @@ module Prism
14833
15413
  # ^
14834
15414
  # ```
14835
15415
  #
15416
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMpID0gMSwgMiwgMwo)
15417
+ #
14836
15418
  # : () -> Location?
14837
15419
  def lparen_loc: () -> Location?
14838
15420
 
@@ -14854,6 +15436,8 @@ module Prism
14854
15436
  # ^
14855
15437
  # ```
14856
15438
  #
15439
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMpID0gMSwgMiwgMwo)
15440
+ #
14857
15441
  # : () -> Location?
14858
15442
  def rparen_loc: () -> Location?
14859
15443
 
@@ -14890,6 +15474,8 @@ module Prism
14890
15474
  # a, b, c = 1, 2, 3
14891
15475
  # ^^^^^^^^^^^^^^^^^
14892
15476
  # ```
15477
+ #
15478
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgYyA9IDEsIDIsIDMK)
14893
15479
  class MultiWriteNode < Node
14894
15480
  @value: Prism::node
14895
15481
 
@@ -14968,6 +15554,8 @@ module Prism
14968
15554
  # ^^^^
14969
15555
  #
14970
15556
  # ```
15557
+ #
15558
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgKiA9IDEsIDIsIDMsIDQsIDUK)
14971
15559
  # The splat node can be absent, in that case all target expressions are in the left field.
14972
15560
  #
14973
15561
  # ```rb
@@ -14975,6 +15563,8 @@ module Prism
14975
15563
  # ^^^^^^^
14976
15564
  # ```
14977
15565
  #
15566
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgYyA9IDEsIDIsIDMsIDQsIDUK)
15567
+ #
14978
15568
  # : () -> Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode]
14979
15569
  def lefts: () -> Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode]
14980
15570
 
@@ -14988,6 +15578,8 @@ module Prism
14988
15578
  # ^^
14989
15579
  #
14990
15580
  # ```
15581
+ #
15582
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgKmMgPSAxLCAyLCAzLCA0Cg)
14991
15583
  # The variable can be empty, this results in a `SplatNode` with a `nil` expression field.
14992
15584
  #
14993
15585
  # ```rb
@@ -14995,6 +15587,8 @@ module Prism
14995
15587
  # ^
14996
15588
  #
14997
15589
  # ```
15590
+ #
15591
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgKiA9IDEsIDIsIDMsIDQK)
14998
15592
  # If the `*` is omitted, this field will contain an `ImplicitRestNode`
14999
15593
  #
15000
15594
  # ```rb
@@ -15002,6 +15596,8 @@ module Prism
15002
15596
  # ^
15003
15597
  # ```
15004
15598
  #
15599
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgPSAxLCAyLCAzLCA0Cg)
15600
+ #
15005
15601
  # : () -> (ImplicitRestNode | SplatNode)?
15006
15602
  def rest: () -> (ImplicitRestNode | SplatNode)?
15007
15603
 
@@ -15015,6 +15611,8 @@ module Prism
15015
15611
  # ^^^^
15016
15612
  # ```
15017
15613
  #
15614
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKiwgYiwgYyA9IDEsIDIsIDMsIDQsIDUK)
15615
+ #
15018
15616
  # : () -> Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode]
15019
15617
  def rights: () -> Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode]
15020
15618
 
@@ -15029,6 +15627,8 @@ module Prism
15029
15627
  # ^
15030
15628
  # ```
15031
15629
  #
15630
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#KGEsIGIsIGMpID0gMSwgMiwgMwo)
15631
+ #
15032
15632
  # : () -> Location?
15033
15633
  def lparen_loc: () -> Location?
15034
15634
 
@@ -15050,6 +15650,8 @@ module Prism
15050
15650
  # ^
15051
15651
  # ```
15052
15652
  #
15653
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#KGEsIGIsIGMpID0gMSwgMiwgMwo)
15654
+ #
15053
15655
  # : () -> Location?
15054
15656
  def rparen_loc: () -> Location?
15055
15657
 
@@ -15071,6 +15673,8 @@ module Prism
15071
15673
  # ^
15072
15674
  # ```
15073
15675
  #
15676
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgYyA9IDEsIDIsIDMK)
15677
+ #
15074
15678
  # : () -> Location
15075
15679
  def operator_loc: () -> Location
15076
15680
 
@@ -15091,6 +15695,8 @@ module Prism
15091
15695
  # ^^^^^^^
15092
15696
  # ```
15093
15697
  #
15698
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgYyA9IDEsIDIsIDMK)
15699
+ #
15094
15700
  # : () -> Prism::node
15095
15701
  def value: () -> Prism::node
15096
15702
 
@@ -15128,6 +15734,8 @@ module Prism
15128
15734
  # next 1
15129
15735
  # ^^^^^^
15130
15736
  # ```
15737
+ #
15738
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bmV4dCAxCg)
15131
15739
  class NextNode < Node
15132
15740
  @keyword_loc: Location
15133
15741
 
@@ -15228,6 +15836,8 @@ module Prism
15228
15836
  # nil
15229
15837
  # ^^^
15230
15838
  # ```
15839
+ #
15840
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bmlsCg)
15231
15841
  class NilNode < Node
15232
15842
  # Initialize a new NilNode node.
15233
15843
  #
@@ -15293,6 +15903,8 @@ module Prism
15293
15903
  # ^^^^
15294
15904
  # end
15295
15905
  # ```
15906
+ #
15907
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJm5pbCkKCmVuZAo)
15296
15908
  class NoBlockParameterNode < Node
15297
15909
  @keyword_loc: Location
15298
15910
 
@@ -15410,6 +16022,8 @@ module Prism
15410
16022
  # ^^^^^
15411
16023
  # end
15412
16024
  # ```
16025
+ #
16026
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoKipuaWwpCgplbmQK)
15413
16027
  class NoKeywordsParameterNode < Node
15414
16028
  @keyword_loc: Location
15415
16029
 
@@ -15526,6 +16140,8 @@ module Prism
15526
16140
  # -> { _1 + _2 }
15527
16141
  # ^^^^^^^^^^^^^^
15528
16142
  # ```
16143
+ #
16144
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4geyBfMSArIF8yIH0K)
15529
16145
  class NumberedParametersNode < Node
15530
16146
  @maximum: Integer
15531
16147
 
@@ -15600,6 +16216,8 @@ module Prism
15600
16216
  # $1
15601
16217
  # ^^
15602
16218
  # ```
16219
+ #
16220
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JDEK)
15603
16221
  class NumberedReferenceReadNode < Node
15604
16222
  @number: Integer
15605
16223
 
@@ -15669,6 +16287,8 @@ module Prism
15669
16287
  # $4294967296 # number `0`
15670
16288
  # ```
15671
16289
  #
16290
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JDEgICAgICAgICAgIyBudW1iZXIgYDFgCgokNTQzMiAgICAgICAjIG51bWJlciBgNTQzMmAKCiQ0Mjk0OTY3Mjk2ICMgbnVtYmVyIGAwYAo)
16291
+ #
15672
16292
  # : () -> Integer
15673
16293
  def number: () -> Integer
15674
16294
 
@@ -15683,6 +16303,8 @@ module Prism
15683
16303
  # ^^^^
15684
16304
  # end
15685
16305
  # ```
16306
+ #
16307
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYjogMSkKCmVuZAo)
15686
16308
  class OptionalKeywordParameterNode < Node
15687
16309
  @value: Prism::node
15688
16310
 
@@ -15792,6 +16414,8 @@ module Prism
15792
16414
  # ^^^^^
15793
16415
  # end
15794
16416
  # ```
16417
+ #
16418
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYiA9IDEpCgplbmQK)
15795
16419
  class OptionalParameterNode < Node
15796
16420
  @value: Prism::node
15797
16421
 
@@ -15926,6 +16550,8 @@ module Prism
15926
16550
  # left or right
15927
16551
  # ^^^^^^^^^^^^^
15928
16552
  # ```
16553
+ #
16554
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBvciByaWdodAo)
15929
16555
  class OrNode < Node
15930
16556
  @operator_loc: Location
15931
16557
 
@@ -15999,6 +16625,8 @@ module Prism
15999
16625
  # ^
16000
16626
  # ```
16001
16627
  #
16628
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBvciByaWdodAoKMSB8fCAyCg)
16629
+ #
16002
16630
  # : () -> Prism::node
16003
16631
  def left: () -> Prism::node
16004
16632
 
@@ -16015,6 +16643,8 @@ module Prism
16015
16643
  # ^
16016
16644
  # ```
16017
16645
  #
16646
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCB8fCByaWdodAoKMSBvciAyCg)
16647
+ #
16018
16648
  # : () -> Prism::node
16019
16649
  def right: () -> Prism::node
16020
16650
 
@@ -16029,6 +16659,8 @@ module Prism
16029
16659
  # ^^
16030
16660
  # ```
16031
16661
  #
16662
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBvciByaWdodAo)
16663
+ #
16032
16664
  # : () -> Location
16033
16665
  def operator_loc: () -> Location
16034
16666
 
@@ -16058,6 +16690,8 @@ module Prism
16058
16690
  # ^^^^^^^
16059
16691
  # end
16060
16692
  # ```
16693
+ #
16694
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYiwgYywgZCkKCmVuZAo)
16061
16695
  class ParametersNode < Node
16062
16696
  @block: (BlockParameterNode | NoBlockParameterNode)?
16063
16697
 
@@ -16192,6 +16826,8 @@ module Prism
16192
16826
  # (10 + 34)
16193
16827
  # ^^^^^^^^^
16194
16828
  # ```
16829
+ #
16830
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#KDEwICsgMzQpCg)
16195
16831
  class ParenthesesNode < Node
16196
16832
  @closing_loc: Location
16197
16833
 
@@ -16324,6 +16960,8 @@ module Prism
16324
16960
  # foo in ^(bar)
16325
16961
  # ^^^^^^
16326
16962
  # ```
16963
+ #
16964
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
16327
16965
  class PinnedExpressionNode < Node
16328
16966
  @rparen_loc: Location
16329
16967
 
@@ -16396,6 +17034,8 @@ module Prism
16396
17034
  # ^^^
16397
17035
  # ```
16398
17036
  #
17037
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
17038
+ #
16399
17039
  # : () -> Prism::node
16400
17040
  def expression: () -> Prism::node
16401
17041
 
@@ -16410,6 +17050,8 @@ module Prism
16410
17050
  # ^
16411
17051
  # ```
16412
17052
  #
17053
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
17054
+ #
16413
17055
  # : () -> Location
16414
17056
  def operator_loc: () -> Location
16415
17057
 
@@ -16431,6 +17073,8 @@ module Prism
16431
17073
  # ^
16432
17074
  # ```
16433
17075
  #
17076
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
17077
+ #
16434
17078
  # : () -> Location
16435
17079
  def lparen_loc: () -> Location
16436
17080
 
@@ -16452,6 +17096,8 @@ module Prism
16452
17096
  # ^
16453
17097
  # ```
16454
17098
  #
17099
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
17100
+ #
16455
17101
  # : () -> Location
16456
17102
  def rparen_loc: () -> Location
16457
17103
 
@@ -16496,6 +17142,8 @@ module Prism
16496
17142
  # foo in ^bar
16497
17143
  # ^^^^
16498
17144
  # ```
17145
+ #
17146
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF5iYXIK)
16499
17147
  class PinnedVariableNode < Node
16500
17148
  @operator_loc: Location
16501
17149
 
@@ -16564,6 +17212,8 @@ module Prism
16564
17212
  # ^^^
16565
17213
  # ```
16566
17214
  #
17215
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF5iYXIK)
17216
+ #
16567
17217
  # : () -> (LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode)
16568
17218
  def variable: () -> (LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode)
16569
17219
 
@@ -16578,6 +17228,8 @@ module Prism
16578
17228
  # ^
16579
17229
  # ```
16580
17230
  #
17231
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF5iYXIK)
17232
+ #
16581
17233
  # : () -> Location
16582
17234
  def operator_loc: () -> Location
16583
17235
 
@@ -16606,6 +17258,8 @@ module Prism
16606
17258
  # END { foo }
16607
17259
  # ^^^^^^^^^^^
16608
17260
  # ```
17261
+ #
17262
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#RU5EIHsgZm9vIH0K)
16609
17263
  class PostExecutionNode < Node
16610
17264
  @closing_loc: Location
16611
17265
 
@@ -16758,6 +17412,8 @@ module Prism
16758
17412
  # BEGIN { foo }
16759
17413
  # ^^^^^^^^^^^^^
16760
17414
  # ```
17415
+ #
17416
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QkVHSU4geyBmb28gfQo)
16761
17417
  class PreExecutionNode < Node
16762
17418
  @closing_loc: Location
16763
17419
 
@@ -16992,6 +17648,8 @@ module Prism
16992
17648
  # c if a =~ /left/ ... b =~ /right/
16993
17649
  # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16994
17650
  # ```
17651
+ #
17652
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4uMgoKYyBpZiBhID1-IC9sZWZ0LyAuLi4gYiA9fiAvcmlnaHQvCg)
16995
17653
  class RangeNode < Node
16996
17654
  @operator_loc: Location
16997
17655
 
@@ -17071,6 +17729,8 @@ module Prism
17071
17729
  # ^^^^^
17072
17730
  # ```
17073
17731
  #
17732
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4uLgoKaGVsbG8uLi5nb29kYnllCg)
17733
+ #
17074
17734
  # : () -> Prism::node?
17075
17735
  def left: () -> Prism::node?
17076
17736
 
@@ -17086,6 +17746,8 @@ module Prism
17086
17746
  # 1...foo
17087
17747
  # ^^^
17088
17748
  # ```
17749
+ #
17750
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Li41CgoxLi4uZm9vCg)
17089
17751
  # If neither right-hand or left-hand side was included, this will be an ErrorRecoveryNode.
17090
17752
  #
17091
17753
  # : () -> Prism::node?
@@ -17125,6 +17787,8 @@ module Prism
17125
17787
  # 1.0r
17126
17788
  # ^^^^
17127
17789
  # ```
17790
+ #
17791
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4wcgo)
17128
17792
  class RationalNode < Node
17129
17793
  @denominator: Integer
17130
17794
 
@@ -17216,6 +17880,8 @@ module Prism
17216
17880
  # 1.5r # numerator 3
17217
17881
  # ```
17218
17882
  #
17883
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS41ciAjIG51bWVyYXRvciAzCg)
17884
+ #
17219
17885
  # : () -> Integer
17220
17886
  def numerator: () -> Integer
17221
17887
 
@@ -17228,6 +17894,8 @@ module Prism
17228
17894
  # 1.5r # denominator 2
17229
17895
  # ```
17230
17896
  #
17897
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS41ciAjIGRlbm9taW5hdG9yIDIK)
17898
+ #
17231
17899
  # : () -> Integer
17232
17900
  def denominator: () -> Integer
17233
17901
 
@@ -17241,6 +17909,8 @@ module Prism
17241
17909
  # redo
17242
17910
  # ^^^^
17243
17911
  # ```
17912
+ #
17913
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#cmVkbwo)
17244
17914
  class RedoNode < Node
17245
17915
  # Initialize a new RedoNode node.
17246
17916
  #
@@ -17305,6 +17975,8 @@ module Prism
17305
17975
  # /foo/i
17306
17976
  # ^^^^^^
17307
17977
  # ```
17978
+ #
17979
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#L2Zvby9pCg)
17308
17980
  class RegularExpressionNode < Node
17309
17981
  @unescaped: String
17310
17982
 
@@ -17524,6 +18196,8 @@ module Prism
17524
18196
  # ^^
17525
18197
  # end
17526
18198
  # ```
18199
+ #
18200
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYjogKQoKZW5kCg)
17527
18201
  class RequiredKeywordParameterNode < Node
17528
18202
  @name_loc: Location
17529
18203
 
@@ -17623,6 +18297,8 @@ module Prism
17623
18297
  # ^
17624
18298
  # end
17625
18299
  # ```
18300
+ #
18301
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYikKCmVuZAo)
17626
18302
  class RequiredParameterNode < Node
17627
18303
  @name: Symbol
17628
18304
 
@@ -17703,6 +18379,8 @@ module Prism
17703
18379
  # foo rescue nil
17704
18380
  # ^^^^^^^^^^^^^^
17705
18381
  # ```
18382
+ #
18383
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIHJlc2N1ZSBuaWwK)
17706
18384
  class RescueModifierNode < Node
17707
18385
  @rescue_expression: Prism::node
17708
18386
 
@@ -17817,6 +18495,8 @@ module Prism
17817
18495
  # end
17818
18496
  #
17819
18497
  # ```
18498
+ #
18499
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4KcmVzY3VlIEZvbywgKnNwbGF0LCBCYXIgPT4gZXgKICBmb28KCmVuZAo)
17820
18500
  # `Foo, *splat, Bar` are in the `exceptions` field. `ex` is in the `reference` field.
17821
18501
  class RescueNode < Node
17822
18502
  @subsequent: RescueNode?
@@ -18001,6 +18681,8 @@ module Prism
18001
18681
  # ^^
18002
18682
  # end
18003
18683
  # ```
18684
+ #
18685
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoKmIpCgplbmQK)
18004
18686
  class RestParameterNode < Node
18005
18687
  @operator_loc: Location
18006
18688
 
@@ -18125,6 +18807,8 @@ module Prism
18125
18807
  # retry
18126
18808
  # ^^^^^
18127
18809
  # ```
18810
+ #
18811
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#cmV0cnkK)
18128
18812
  class RetryNode < Node
18129
18813
  # Initialize a new RetryNode node.
18130
18814
  #
@@ -18189,6 +18873,8 @@ module Prism
18189
18873
  # return 1
18190
18874
  # ^^^^^^^^
18191
18875
  # ```
18876
+ #
18877
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#cmV0dXJuIDEK)
18192
18878
  class ReturnNode < Node
18193
18879
  @arguments: ArgumentsNode?
18194
18880
 
@@ -18289,6 +18975,8 @@ module Prism
18289
18975
  # self
18290
18976
  # ^^^^
18291
18977
  # ```
18978
+ #
18979
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#c2VsZgo)
18292
18980
  class SelfNode < Node
18293
18981
  # Initialize a new SelfNode node.
18294
18982
  #
@@ -18354,6 +19042,8 @@ module Prism
18354
19042
  # C = { a: 1 }
18355
19043
  # ^^^^^^^^^^^^
18356
19044
  # ```
19045
+ #
19046
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#IyBzaGFyZWFibGVfY29uc3RhbnRfdmFsdWU6IGxpdGVyYWwKQyA9IHsgYTogMSB9Cg)
18357
19047
  class ShareableConstantNode < Node
18358
19048
  @write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode
18359
19049
 
@@ -18446,6 +19136,8 @@ module Prism
18446
19136
  # class << self end
18447
19137
  # ^^^^^^^^^^^^^^^^^
18448
19138
  # ```
19139
+ #
19140
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgPDwgc2VsZiBlbmQK)
18449
19141
  class SingletonClassNode < Node
18450
19142
  @end_keyword_loc: Location
18451
19143
 
@@ -18618,6 +19310,8 @@ module Prism
18618
19310
  # __ENCODING__
18619
19311
  # ^^^^^^^^^^^^
18620
19312
  # ```
19313
+ #
19314
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#X19FTkNPRElOR19fCg)
18621
19315
  class SourceEncodingNode < Node
18622
19316
  # Initialize a new SourceEncodingNode node.
18623
19317
  #
@@ -18682,6 +19376,8 @@ module Prism
18682
19376
  # __FILE__
18683
19377
  # ^^^^^^^^
18684
19378
  # ```
19379
+ #
19380
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#X19GSUxFX18K)
18685
19381
  class SourceFileNode < Node
18686
19382
  @filepath: String
18687
19383
 
@@ -18780,6 +19476,8 @@ module Prism
18780
19476
  # __LINE__
18781
19477
  # ^^^^^^^^
18782
19478
  # ```
19479
+ #
19480
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#X19MSU5FX18K)
18783
19481
  class SourceLineNode < Node
18784
19482
  # Initialize a new SourceLineNode node.
18785
19483
  #
@@ -18844,6 +19542,8 @@ module Prism
18844
19542
  # [*a]
18845
19543
  # ^^
18846
19544
  # ```
19545
+ #
19546
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WyphXQo)
18847
19547
  class SplatNode < Node
18848
19548
  @expression: Prism::node?
18849
19549
 
@@ -18944,6 +19644,8 @@ module Prism
18944
19644
  # foo; bar; baz
18945
19645
  # ^^^^^^^^^^^^^
18946
19646
  # ```
19647
+ #
19648
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vOyBiYXI7IGJhego)
18947
19649
  class StatementsNode < Node
18948
19650
  @body: Array[Prism::node]
18949
19651
 
@@ -19024,6 +19726,8 @@ module Prism
19024
19726
  # "foo #{bar} baz"
19025
19727
  # ^^^^ ^^^^
19026
19728
  # ```
19729
+ #
19730
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ImZvbyIKCiV3W2Zvb10KCiJmb28gI3tiYXJ9IGJheiIK)
19027
19731
  class StringNode < Node
19028
19732
  @unescaped: String
19029
19733
 
@@ -19204,6 +19908,8 @@ module Prism
19204
19908
  # ^^^^^^^^^^^^^^
19205
19909
  #
19206
19910
  # ```
19911
+ #
19912
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#c3VwZXIoKQoKc3VwZXIgZm9vLCBiYXIK)
19207
19913
  # If no arguments are provided (except for a block), it would be a `ForwardingSuperNode` instead.
19208
19914
  class SuperNode < Node
19209
19915
  @block: (BlockNode | BlockArgumentNode)?
@@ -19370,6 +20076,8 @@ module Prism
19370
20076
  # %i[foo]
19371
20077
  # ^^^
19372
20078
  # ```
20079
+ #
20080
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OmZvbwoKJWlbZm9vXQo)
19373
20081
  class SymbolNode < Node
19374
20082
  @unescaped: String
19375
20083
 
@@ -19540,6 +20248,8 @@ module Prism
19540
20248
  # true
19541
20249
  # ^^^^
19542
20250
  # ```
20251
+ #
20252
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dHJ1ZQo)
19543
20253
  class TrueNode < Node
19544
20254
  # Initialize a new TrueNode node.
19545
20255
  #
@@ -19604,6 +20314,8 @@ module Prism
19604
20314
  # undef :foo, :bar, :baz
19605
20315
  # ^^^^^^^^^^^^^^^^^^^^^^
19606
20316
  # ```
20317
+ #
20318
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5kZWYgOmZvbywgOmJhciwgOmJhego)
19607
20319
  class UndefNode < Node
19608
20320
  @keyword_loc: Location
19609
20321
 
@@ -19707,6 +20419,8 @@ module Prism
19707
20419
  # unless foo then bar end
19708
20420
  # ^^^^^^^^^^^^^^^^^^^^^^^
19709
20421
  # ```
20422
+ #
20423
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIHVubGVzcyBmb28KCnVubGVzcyBmb28gdGhlbiBiYXIgZW5kCg)
19710
20424
  class UnlessNode < Node
19711
20425
  @end_keyword_loc: Location?
19712
20426
 
@@ -19787,6 +20501,8 @@ module Prism
19787
20501
  # ^^^^^^
19788
20502
  # ```
19789
20503
  #
20504
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCgpiYXIgdW5sZXNzIGNvbmQK)
20505
+ #
19790
20506
  # : () -> Location
19791
20507
  def unless_keyword_loc: () -> Location
19792
20508
 
@@ -19810,6 +20526,8 @@ module Prism
19810
20526
  # ^^^^
19811
20527
  # ```
19812
20528
  #
20529
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCgpiYXIgdW5sZXNzIGNvbmQK)
20530
+ #
19813
20531
  # : () -> Prism::node
19814
20532
  def predicate: () -> Prism::node
19815
20533
 
@@ -19824,6 +20542,8 @@ module Prism
19824
20542
  # ^^^^
19825
20543
  # ```
19826
20544
  #
20545
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCg)
20546
+ #
19827
20547
  # : () -> Location?
19828
20548
  def then_keyword_loc: () -> Location?
19829
20549
 
@@ -19845,6 +20565,8 @@ module Prism
19845
20565
  # ^^^
19846
20566
  # ```
19847
20567
  #
20568
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCg)
20569
+ #
19848
20570
  # : () -> StatementsNode?
19849
20571
  def statements: () -> StatementsNode?
19850
20572
 
@@ -19858,6 +20580,8 @@ module Prism
19858
20580
  # ^^^^^^^^^^^^
19859
20581
  # ```
19860
20582
  #
20583
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZWxzZSBiYXogZW5kCg)
20584
+ #
19861
20585
  # : () -> ElseNode?
19862
20586
  def else_clause: () -> ElseNode?
19863
20587
 
@@ -19872,6 +20596,8 @@ module Prism
19872
20596
  # ^^^
19873
20597
  # ```
19874
20598
  #
20599
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCg)
20600
+ #
19875
20601
  # : () -> Location?
19876
20602
  def end_keyword_loc: () -> Location?
19877
20603
 
@@ -19919,6 +20645,8 @@ module Prism
19919
20645
  # until foo do bar end
19920
20646
  # ^^^^^^^^^^^^^^^^^^^^
19921
20647
  # ```
20648
+ #
20649
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIHVudGlsIGZvbwoKdW50aWwgZm9vIGRvIGJhciBlbmQK)
19922
20650
  class UntilNode < Node
19923
20651
  @statements: StatementsNode?
19924
20652
 
@@ -20089,6 +20817,8 @@ module Prism
20089
20817
  # ^^^^^^^^^
20090
20818
  # end
20091
20819
  # ```
20820
+ #
20821
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlCndoZW4gdHJ1ZQoKZW5kCg)
20092
20822
  class WhenNode < Node
20093
20823
  @statements: StatementsNode?
20094
20824
 
@@ -20228,6 +20958,8 @@ module Prism
20228
20958
  # while foo do bar end
20229
20959
  # ^^^^^^^^^^^^^^^^^^^^
20230
20960
  # ```
20961
+ #
20962
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIHdoaWxlIGZvbwoKd2hpbGUgZm9vIGRvIGJhciBlbmQK)
20231
20963
  class WhileNode < Node
20232
20964
  @statements: StatementsNode?
20233
20965
 
@@ -20396,6 +21128,8 @@ module Prism
20396
21128
  # `foo`
20397
21129
  # ^^^^^
20398
21130
  # ```
21131
+ #
21132
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YGZvb2AK)
20399
21133
  class XStringNode < Node
20400
21134
  @unescaped: String
20401
21135
 
@@ -20560,6 +21294,8 @@ module Prism
20560
21294
  # yield 1
20561
21295
  # ^^^^^^^
20562
21296
  # ```
21297
+ #
21298
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eWllbGQgMQo)
20563
21299
  class YieldNode < Node
20564
21300
  @rparen_loc: Location?
20565
21301