prism 0.13.0 → 0.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -1
- data/README.md +4 -1
- data/config.yml +10 -14
- data/docs/fuzzing.md +5 -10
- data/docs/prism.png +0 -0
- data/docs/serialization.md +10 -0
- data/ext/prism/api_node.c +35 -28
- data/ext/prism/extension.c +35 -48
- data/ext/prism/extension.h +1 -1
- data/include/prism/ast.h +38 -36
- data/include/prism/node.h +1 -0
- data/include/prism/parser.h +26 -0
- data/include/prism/util/pm_buffer.h +3 -0
- data/include/prism/util/pm_constant_pool.h +5 -0
- data/include/prism/util/pm_string.h +2 -1
- data/include/prism/version.h +2 -2
- data/include/prism.h +0 -1
- data/lib/prism/compiler.rb +141 -141
- data/lib/prism/ffi.rb +2 -2
- data/lib/prism/lex_compat.rb +42 -8
- data/lib/prism/node.rb +1456 -46
- data/lib/prism/node_ext.rb +44 -0
- data/lib/prism/parse_result.rb +32 -5
- data/lib/prism/pattern.rb +1 -1
- data/lib/prism/serialize.rb +16 -14
- data/prism.gemspec +2 -3
- data/src/diagnostic.c +1 -1
- data/src/node.c +0 -14
- data/src/prettyprint.c +35 -35
- data/src/prism.c +1728 -811
- data/src/serialize.c +45 -22
- data/src/util/pm_buffer.c +9 -7
- metadata +3 -4
- data/include/prism/unescape.h +0 -48
- data/src/unescape.c +0 -637
data/lib/prism/node.rb
CHANGED
@@ -130,6 +130,16 @@ module Prism
|
|
130
130
|
def type
|
131
131
|
:alias_global_variable_node
|
132
132
|
end
|
133
|
+
|
134
|
+
# Similar to #type, this method returns a symbol that you can use for
|
135
|
+
# splitting on the type of the node without having to do a long === chain.
|
136
|
+
# Note that like #type, it will still be slower than using == for a single
|
137
|
+
# class, but should be faster in a case statement or an array comparison.
|
138
|
+
#
|
139
|
+
# def self.type: () -> Symbol
|
140
|
+
def self.type
|
141
|
+
:alias_global_variable_node
|
142
|
+
end
|
133
143
|
end
|
134
144
|
|
135
145
|
# Represents the use of the `alias` keyword to alias a method.
|
@@ -224,6 +234,16 @@ module Prism
|
|
224
234
|
def type
|
225
235
|
:alias_method_node
|
226
236
|
end
|
237
|
+
|
238
|
+
# Similar to #type, this method returns a symbol that you can use for
|
239
|
+
# splitting on the type of the node without having to do a long === chain.
|
240
|
+
# Note that like #type, it will still be slower than using == for a single
|
241
|
+
# class, but should be faster in a case statement or an array comparison.
|
242
|
+
#
|
243
|
+
# def self.type: () -> Symbol
|
244
|
+
def self.type
|
245
|
+
:alias_method_node
|
246
|
+
end
|
227
247
|
end
|
228
248
|
|
229
249
|
# Represents an alternation pattern in pattern matching.
|
@@ -318,6 +338,16 @@ module Prism
|
|
318
338
|
def type
|
319
339
|
:alternation_pattern_node
|
320
340
|
end
|
341
|
+
|
342
|
+
# Similar to #type, this method returns a symbol that you can use for
|
343
|
+
# splitting on the type of the node without having to do a long === chain.
|
344
|
+
# Note that like #type, it will still be slower than using == for a single
|
345
|
+
# class, but should be faster in a case statement or an array comparison.
|
346
|
+
#
|
347
|
+
# def self.type: () -> Symbol
|
348
|
+
def self.type
|
349
|
+
:alternation_pattern_node
|
350
|
+
end
|
321
351
|
end
|
322
352
|
|
323
353
|
# Represents the use of the `&&` operator or the `and` keyword.
|
@@ -412,6 +442,16 @@ module Prism
|
|
412
442
|
def type
|
413
443
|
:and_node
|
414
444
|
end
|
445
|
+
|
446
|
+
# Similar to #type, this method returns a symbol that you can use for
|
447
|
+
# splitting on the type of the node without having to do a long === chain.
|
448
|
+
# Note that like #type, it will still be slower than using == for a single
|
449
|
+
# class, but should be faster in a case statement or an array comparison.
|
450
|
+
#
|
451
|
+
# def self.type: () -> Symbol
|
452
|
+
def self.type
|
453
|
+
:and_node
|
454
|
+
end
|
415
455
|
end
|
416
456
|
|
417
457
|
# Represents a set of arguments to a method or a keyword.
|
@@ -487,6 +527,16 @@ module Prism
|
|
487
527
|
def type
|
488
528
|
:arguments_node
|
489
529
|
end
|
530
|
+
|
531
|
+
# Similar to #type, this method returns a symbol that you can use for
|
532
|
+
# splitting on the type of the node without having to do a long === chain.
|
533
|
+
# Note that like #type, it will still be slower than using == for a single
|
534
|
+
# class, but should be faster in a case statement or an array comparison.
|
535
|
+
#
|
536
|
+
# def self.type: () -> Symbol
|
537
|
+
def self.type
|
538
|
+
:arguments_node
|
539
|
+
end
|
490
540
|
end
|
491
541
|
|
492
542
|
# Represents an array literal. This can be a regular array using brackets or
|
@@ -585,6 +635,16 @@ module Prism
|
|
585
635
|
def type
|
586
636
|
:array_node
|
587
637
|
end
|
638
|
+
|
639
|
+
# Similar to #type, this method returns a symbol that you can use for
|
640
|
+
# splitting on the type of the node without having to do a long === chain.
|
641
|
+
# Note that like #type, it will still be slower than using == for a single
|
642
|
+
# class, but should be faster in a case statement or an array comparison.
|
643
|
+
#
|
644
|
+
# def self.type: () -> Symbol
|
645
|
+
def self.type
|
646
|
+
:array_node
|
647
|
+
end
|
588
648
|
end
|
589
649
|
|
590
650
|
# Represents an array pattern in pattern matching.
|
@@ -727,6 +787,16 @@ module Prism
|
|
727
787
|
def type
|
728
788
|
:array_pattern_node
|
729
789
|
end
|
790
|
+
|
791
|
+
# Similar to #type, this method returns a symbol that you can use for
|
792
|
+
# splitting on the type of the node without having to do a long === chain.
|
793
|
+
# Note that like #type, it will still be slower than using == for a single
|
794
|
+
# class, but should be faster in a case statement or an array comparison.
|
795
|
+
#
|
796
|
+
# def self.type: () -> Symbol
|
797
|
+
def self.type
|
798
|
+
:array_pattern_node
|
799
|
+
end
|
730
800
|
end
|
731
801
|
|
732
802
|
# Represents a hash key/value pair.
|
@@ -828,6 +898,16 @@ module Prism
|
|
828
898
|
def type
|
829
899
|
:assoc_node
|
830
900
|
end
|
901
|
+
|
902
|
+
# Similar to #type, this method returns a symbol that you can use for
|
903
|
+
# splitting on the type of the node without having to do a long === chain.
|
904
|
+
# Note that like #type, it will still be slower than using == for a single
|
905
|
+
# class, but should be faster in a case statement or an array comparison.
|
906
|
+
#
|
907
|
+
# def self.type: () -> Symbol
|
908
|
+
def self.type
|
909
|
+
:assoc_node
|
910
|
+
end
|
831
911
|
end
|
832
912
|
|
833
913
|
# Represents a splat in a hash literal.
|
@@ -921,6 +1001,16 @@ module Prism
|
|
921
1001
|
def type
|
922
1002
|
:assoc_splat_node
|
923
1003
|
end
|
1004
|
+
|
1005
|
+
# Similar to #type, this method returns a symbol that you can use for
|
1006
|
+
# splitting on the type of the node without having to do a long === chain.
|
1007
|
+
# Note that like #type, it will still be slower than using == for a single
|
1008
|
+
# class, but should be faster in a case statement or an array comparison.
|
1009
|
+
#
|
1010
|
+
# def self.type: () -> Symbol
|
1011
|
+
def self.type
|
1012
|
+
:assoc_splat_node
|
1013
|
+
end
|
924
1014
|
end
|
925
1015
|
|
926
1016
|
# Represents reading a reference to a field in the previous match.
|
@@ -990,6 +1080,16 @@ module Prism
|
|
990
1080
|
def type
|
991
1081
|
:back_reference_read_node
|
992
1082
|
end
|
1083
|
+
|
1084
|
+
# Similar to #type, this method returns a symbol that you can use for
|
1085
|
+
# splitting on the type of the node without having to do a long === chain.
|
1086
|
+
# Note that like #type, it will still be slower than using == for a single
|
1087
|
+
# class, but should be faster in a case statement or an array comparison.
|
1088
|
+
#
|
1089
|
+
# def self.type: () -> Symbol
|
1090
|
+
def self.type
|
1091
|
+
:back_reference_read_node
|
1092
|
+
end
|
993
1093
|
end
|
994
1094
|
|
995
1095
|
# Represents a begin statement.
|
@@ -1136,6 +1236,16 @@ module Prism
|
|
1136
1236
|
def type
|
1137
1237
|
:begin_node
|
1138
1238
|
end
|
1239
|
+
|
1240
|
+
# Similar to #type, this method returns a symbol that you can use for
|
1241
|
+
# splitting on the type of the node without having to do a long === chain.
|
1242
|
+
# Note that like #type, it will still be slower than using == for a single
|
1243
|
+
# class, but should be faster in a case statement or an array comparison.
|
1244
|
+
#
|
1245
|
+
# def self.type: () -> Symbol
|
1246
|
+
def self.type
|
1247
|
+
:begin_node
|
1248
|
+
end
|
1139
1249
|
end
|
1140
1250
|
|
1141
1251
|
# Represents block method arguments.
|
@@ -1229,6 +1339,16 @@ module Prism
|
|
1229
1339
|
def type
|
1230
1340
|
:block_argument_node
|
1231
1341
|
end
|
1342
|
+
|
1343
|
+
# Similar to #type, this method returns a symbol that you can use for
|
1344
|
+
# splitting on the type of the node without having to do a long === chain.
|
1345
|
+
# Note that like #type, it will still be slower than using == for a single
|
1346
|
+
# class, but should be faster in a case statement or an array comparison.
|
1347
|
+
#
|
1348
|
+
# def self.type: () -> Symbol
|
1349
|
+
def self.type
|
1350
|
+
:block_argument_node
|
1351
|
+
end
|
1232
1352
|
end
|
1233
1353
|
|
1234
1354
|
# Represents a block local variable.
|
@@ -1304,6 +1424,16 @@ module Prism
|
|
1304
1424
|
def type
|
1305
1425
|
:block_local_variable_node
|
1306
1426
|
end
|
1427
|
+
|
1428
|
+
# Similar to #type, this method returns a symbol that you can use for
|
1429
|
+
# splitting on the type of the node without having to do a long === chain.
|
1430
|
+
# Note that like #type, it will still be slower than using == for a single
|
1431
|
+
# class, but should be faster in a case statement or an array comparison.
|
1432
|
+
#
|
1433
|
+
# def self.type: () -> Symbol
|
1434
|
+
def self.type
|
1435
|
+
:block_local_variable_node
|
1436
|
+
end
|
1307
1437
|
end
|
1308
1438
|
|
1309
1439
|
# Represents a block of ruby code.
|
@@ -1426,6 +1556,16 @@ module Prism
|
|
1426
1556
|
def type
|
1427
1557
|
:block_node
|
1428
1558
|
end
|
1559
|
+
|
1560
|
+
# Similar to #type, this method returns a symbol that you can use for
|
1561
|
+
# splitting on the type of the node without having to do a long === chain.
|
1562
|
+
# Note that like #type, it will still be slower than using == for a single
|
1563
|
+
# class, but should be faster in a case statement or an array comparison.
|
1564
|
+
#
|
1565
|
+
# def self.type: () -> Symbol
|
1566
|
+
def self.type
|
1567
|
+
:block_node
|
1568
|
+
end
|
1429
1569
|
end
|
1430
1570
|
|
1431
1571
|
# Represents a block parameter to a method, block, or lambda definition.
|
@@ -1519,6 +1659,16 @@ module Prism
|
|
1519
1659
|
def type
|
1520
1660
|
:block_parameter_node
|
1521
1661
|
end
|
1662
|
+
|
1663
|
+
# Similar to #type, this method returns a symbol that you can use for
|
1664
|
+
# splitting on the type of the node without having to do a long === chain.
|
1665
|
+
# Note that like #type, it will still be slower than using == for a single
|
1666
|
+
# class, but should be faster in a case statement or an array comparison.
|
1667
|
+
#
|
1668
|
+
# def self.type: () -> Symbol
|
1669
|
+
def self.type
|
1670
|
+
:block_parameter_node
|
1671
|
+
end
|
1522
1672
|
end
|
1523
1673
|
|
1524
1674
|
# Represents a block's parameters declaration.
|
@@ -1634,6 +1784,16 @@ module Prism
|
|
1634
1784
|
def type
|
1635
1785
|
:block_parameters_node
|
1636
1786
|
end
|
1787
|
+
|
1788
|
+
# Similar to #type, this method returns a symbol that you can use for
|
1789
|
+
# splitting on the type of the node without having to do a long === chain.
|
1790
|
+
# Note that like #type, it will still be slower than using == for a single
|
1791
|
+
# class, but should be faster in a case statement or an array comparison.
|
1792
|
+
#
|
1793
|
+
# def self.type: () -> Symbol
|
1794
|
+
def self.type
|
1795
|
+
:block_parameters_node
|
1796
|
+
end
|
1637
1797
|
end
|
1638
1798
|
|
1639
1799
|
# Represents the use of the `break` keyword.
|
@@ -1727,6 +1887,16 @@ module Prism
|
|
1727
1887
|
def type
|
1728
1888
|
:break_node
|
1729
1889
|
end
|
1890
|
+
|
1891
|
+
# Similar to #type, this method returns a symbol that you can use for
|
1892
|
+
# splitting on the type of the node without having to do a long === chain.
|
1893
|
+
# Note that like #type, it will still be slower than using == for a single
|
1894
|
+
# class, but should be faster in a case statement or an array comparison.
|
1895
|
+
#
|
1896
|
+
# def self.type: () -> Symbol
|
1897
|
+
def self.type
|
1898
|
+
:break_node
|
1899
|
+
end
|
1730
1900
|
end
|
1731
1901
|
|
1732
1902
|
# Represents the use of the `&&=` operator on a call.
|
@@ -1755,10 +1925,10 @@ module Prism
|
|
1755
1925
|
# attr_reader flags: Integer
|
1756
1926
|
private attr_reader :flags
|
1757
1927
|
|
1758
|
-
# attr_reader read_name:
|
1928
|
+
# attr_reader read_name: Symbol
|
1759
1929
|
attr_reader :read_name
|
1760
1930
|
|
1761
|
-
# attr_reader write_name:
|
1931
|
+
# attr_reader write_name: Symbol
|
1762
1932
|
attr_reader :write_name
|
1763
1933
|
|
1764
1934
|
# attr_reader operator_loc: Location
|
@@ -1767,7 +1937,7 @@ module Prism
|
|
1767
1937
|
# attr_reader value: Node
|
1768
1938
|
attr_reader :value
|
1769
1939
|
|
1770
|
-
# def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, flags: Integer, read_name:
|
1940
|
+
# def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> void
|
1771
1941
|
def initialize(receiver, call_operator_loc, message_loc, opening_loc, arguments, closing_loc, flags, read_name, write_name, operator_loc, value, location)
|
1772
1942
|
@receiver = receiver
|
1773
1943
|
@call_operator_loc = call_operator_loc
|
@@ -1913,6 +2083,16 @@ module Prism
|
|
1913
2083
|
def type
|
1914
2084
|
:call_and_write_node
|
1915
2085
|
end
|
2086
|
+
|
2087
|
+
# Similar to #type, this method returns a symbol that you can use for
|
2088
|
+
# splitting on the type of the node without having to do a long === chain.
|
2089
|
+
# Note that like #type, it will still be slower than using == for a single
|
2090
|
+
# class, but should be faster in a case statement or an array comparison.
|
2091
|
+
#
|
2092
|
+
# def self.type: () -> Symbol
|
2093
|
+
def self.type
|
2094
|
+
:call_and_write_node
|
2095
|
+
end
|
1916
2096
|
end
|
1917
2097
|
|
1918
2098
|
# Represents a method call, in all of the various forms that can take.
|
@@ -1959,10 +2139,10 @@ module Prism
|
|
1959
2139
|
# attr_reader flags: Integer
|
1960
2140
|
private attr_reader :flags
|
1961
2141
|
|
1962
|
-
# attr_reader name:
|
2142
|
+
# attr_reader name: Symbol
|
1963
2143
|
attr_reader :name
|
1964
2144
|
|
1965
|
-
# def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Node?, flags: Integer, name:
|
2145
|
+
# def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Node?, flags: Integer, name: Symbol, location: Location) -> void
|
1966
2146
|
def initialize(receiver, call_operator_loc, message_loc, opening_loc, arguments, closing_loc, block, flags, name, location)
|
1967
2147
|
@receiver = receiver
|
1968
2148
|
@call_operator_loc = call_operator_loc
|
@@ -2101,6 +2281,16 @@ module Prism
|
|
2101
2281
|
def type
|
2102
2282
|
:call_node
|
2103
2283
|
end
|
2284
|
+
|
2285
|
+
# Similar to #type, this method returns a symbol that you can use for
|
2286
|
+
# splitting on the type of the node without having to do a long === chain.
|
2287
|
+
# Note that like #type, it will still be slower than using == for a single
|
2288
|
+
# class, but should be faster in a case statement or an array comparison.
|
2289
|
+
#
|
2290
|
+
# def self.type: () -> Symbol
|
2291
|
+
def self.type
|
2292
|
+
:call_node
|
2293
|
+
end
|
2104
2294
|
end
|
2105
2295
|
|
2106
2296
|
# Represents the use of an assignment operator on a call.
|
@@ -2129,10 +2319,10 @@ module Prism
|
|
2129
2319
|
# attr_reader flags: Integer
|
2130
2320
|
private attr_reader :flags
|
2131
2321
|
|
2132
|
-
# attr_reader read_name:
|
2322
|
+
# attr_reader read_name: Symbol
|
2133
2323
|
attr_reader :read_name
|
2134
2324
|
|
2135
|
-
# attr_reader write_name:
|
2325
|
+
# attr_reader write_name: Symbol
|
2136
2326
|
attr_reader :write_name
|
2137
2327
|
|
2138
2328
|
# attr_reader operator: Symbol
|
@@ -2144,7 +2334,7 @@ module Prism
|
|
2144
2334
|
# attr_reader value: Node
|
2145
2335
|
attr_reader :value
|
2146
2336
|
|
2147
|
-
# def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, flags: Integer, read_name:
|
2337
|
+
# def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, flags: Integer, read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Location, value: Node, location: Location) -> void
|
2148
2338
|
def initialize(receiver, call_operator_loc, message_loc, opening_loc, arguments, closing_loc, flags, read_name, write_name, operator, operator_loc, value, location)
|
2149
2339
|
@receiver = receiver
|
2150
2340
|
@call_operator_loc = call_operator_loc
|
@@ -2288,6 +2478,16 @@ module Prism
|
|
2288
2478
|
def type
|
2289
2479
|
:call_operator_write_node
|
2290
2480
|
end
|
2481
|
+
|
2482
|
+
# Similar to #type, this method returns a symbol that you can use for
|
2483
|
+
# splitting on the type of the node without having to do a long === chain.
|
2484
|
+
# Note that like #type, it will still be slower than using == for a single
|
2485
|
+
# class, but should be faster in a case statement or an array comparison.
|
2486
|
+
#
|
2487
|
+
# def self.type: () -> Symbol
|
2488
|
+
def self.type
|
2489
|
+
:call_operator_write_node
|
2490
|
+
end
|
2291
2491
|
end
|
2292
2492
|
|
2293
2493
|
# Represents the use of the `||=` operator on a call.
|
@@ -2316,10 +2516,10 @@ module Prism
|
|
2316
2516
|
# attr_reader flags: Integer
|
2317
2517
|
private attr_reader :flags
|
2318
2518
|
|
2319
|
-
# attr_reader read_name:
|
2519
|
+
# attr_reader read_name: Symbol
|
2320
2520
|
attr_reader :read_name
|
2321
2521
|
|
2322
|
-
# attr_reader write_name:
|
2522
|
+
# attr_reader write_name: Symbol
|
2323
2523
|
attr_reader :write_name
|
2324
2524
|
|
2325
2525
|
# attr_reader operator_loc: Location
|
@@ -2328,7 +2528,7 @@ module Prism
|
|
2328
2528
|
# attr_reader value: Node
|
2329
2529
|
attr_reader :value
|
2330
2530
|
|
2331
|
-
# def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, flags: Integer, read_name:
|
2531
|
+
# def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> void
|
2332
2532
|
def initialize(receiver, call_operator_loc, message_loc, opening_loc, arguments, closing_loc, flags, read_name, write_name, operator_loc, value, location)
|
2333
2533
|
@receiver = receiver
|
2334
2534
|
@call_operator_loc = call_operator_loc
|
@@ -2474,6 +2674,16 @@ module Prism
|
|
2474
2674
|
def type
|
2475
2675
|
:call_or_write_node
|
2476
2676
|
end
|
2677
|
+
|
2678
|
+
# Similar to #type, this method returns a symbol that you can use for
|
2679
|
+
# splitting on the type of the node without having to do a long === chain.
|
2680
|
+
# Note that like #type, it will still be slower than using == for a single
|
2681
|
+
# class, but should be faster in a case statement or an array comparison.
|
2682
|
+
#
|
2683
|
+
# def self.type: () -> Symbol
|
2684
|
+
def self.type
|
2685
|
+
:call_or_write_node
|
2686
|
+
end
|
2477
2687
|
end
|
2478
2688
|
|
2479
2689
|
# Represents assigning to a local variable in pattern matching.
|
@@ -2568,6 +2778,16 @@ module Prism
|
|
2568
2778
|
def type
|
2569
2779
|
:capture_pattern_node
|
2570
2780
|
end
|
2781
|
+
|
2782
|
+
# Similar to #type, this method returns a symbol that you can use for
|
2783
|
+
# splitting on the type of the node without having to do a long === chain.
|
2784
|
+
# Note that like #type, it will still be slower than using == for a single
|
2785
|
+
# class, but should be faster in a case statement or an array comparison.
|
2786
|
+
#
|
2787
|
+
# def self.type: () -> Symbol
|
2788
|
+
def self.type
|
2789
|
+
:capture_pattern_node
|
2790
|
+
end
|
2571
2791
|
end
|
2572
2792
|
|
2573
2793
|
# Represents the use of a case statement.
|
@@ -2693,6 +2913,16 @@ module Prism
|
|
2693
2913
|
def type
|
2694
2914
|
:case_node
|
2695
2915
|
end
|
2916
|
+
|
2917
|
+
# Similar to #type, this method returns a symbol that you can use for
|
2918
|
+
# splitting on the type of the node without having to do a long === chain.
|
2919
|
+
# Note that like #type, it will still be slower than using == for a single
|
2920
|
+
# class, but should be faster in a case statement or an array comparison.
|
2921
|
+
#
|
2922
|
+
# def self.type: () -> Symbol
|
2923
|
+
def self.type
|
2924
|
+
:case_node
|
2925
|
+
end
|
2696
2926
|
end
|
2697
2927
|
|
2698
2928
|
# Represents a class declaration involving the `class` keyword.
|
@@ -2840,6 +3070,16 @@ module Prism
|
|
2840
3070
|
def type
|
2841
3071
|
:class_node
|
2842
3072
|
end
|
3073
|
+
|
3074
|
+
# Similar to #type, this method returns a symbol that you can use for
|
3075
|
+
# splitting on the type of the node without having to do a long === chain.
|
3076
|
+
# Note that like #type, it will still be slower than using == for a single
|
3077
|
+
# class, but should be faster in a case statement or an array comparison.
|
3078
|
+
#
|
3079
|
+
# def self.type: () -> Symbol
|
3080
|
+
def self.type
|
3081
|
+
:class_node
|
3082
|
+
end
|
2843
3083
|
end
|
2844
3084
|
|
2845
3085
|
# Represents the use of the `&&=` operator for assignment to a class variable.
|
@@ -2939,6 +3179,16 @@ module Prism
|
|
2939
3179
|
def type
|
2940
3180
|
:class_variable_and_write_node
|
2941
3181
|
end
|
3182
|
+
|
3183
|
+
# Similar to #type, this method returns a symbol that you can use for
|
3184
|
+
# splitting on the type of the node without having to do a long === chain.
|
3185
|
+
# Note that like #type, it will still be slower than using == for a single
|
3186
|
+
# class, but should be faster in a case statement or an array comparison.
|
3187
|
+
#
|
3188
|
+
# def self.type: () -> Symbol
|
3189
|
+
def self.type
|
3190
|
+
:class_variable_and_write_node
|
3191
|
+
end
|
2942
3192
|
end
|
2943
3193
|
|
2944
3194
|
# Represents assigning to a class variable using an operator that isn't `=`.
|
@@ -3039,6 +3289,16 @@ module Prism
|
|
3039
3289
|
def type
|
3040
3290
|
:class_variable_operator_write_node
|
3041
3291
|
end
|
3292
|
+
|
3293
|
+
# Similar to #type, this method returns a symbol that you can use for
|
3294
|
+
# splitting on the type of the node without having to do a long === chain.
|
3295
|
+
# Note that like #type, it will still be slower than using == for a single
|
3296
|
+
# class, but should be faster in a case statement or an array comparison.
|
3297
|
+
#
|
3298
|
+
# def self.type: () -> Symbol
|
3299
|
+
def self.type
|
3300
|
+
:class_variable_operator_write_node
|
3301
|
+
end
|
3042
3302
|
end
|
3043
3303
|
|
3044
3304
|
# Represents the use of the `||=` operator for assignment to a class variable.
|
@@ -3138,6 +3398,16 @@ module Prism
|
|
3138
3398
|
def type
|
3139
3399
|
:class_variable_or_write_node
|
3140
3400
|
end
|
3401
|
+
|
3402
|
+
# Similar to #type, this method returns a symbol that you can use for
|
3403
|
+
# splitting on the type of the node without having to do a long === chain.
|
3404
|
+
# Note that like #type, it will still be slower than using == for a single
|
3405
|
+
# class, but should be faster in a case statement or an array comparison.
|
3406
|
+
#
|
3407
|
+
# def self.type: () -> Symbol
|
3408
|
+
def self.type
|
3409
|
+
:class_variable_or_write_node
|
3410
|
+
end
|
3141
3411
|
end
|
3142
3412
|
|
3143
3413
|
# Represents referencing a class variable.
|
@@ -3213,6 +3483,16 @@ module Prism
|
|
3213
3483
|
def type
|
3214
3484
|
:class_variable_read_node
|
3215
3485
|
end
|
3486
|
+
|
3487
|
+
# Similar to #type, this method returns a symbol that you can use for
|
3488
|
+
# splitting on the type of the node without having to do a long === chain.
|
3489
|
+
# Note that like #type, it will still be slower than using == for a single
|
3490
|
+
# class, but should be faster in a case statement or an array comparison.
|
3491
|
+
#
|
3492
|
+
# def self.type: () -> Symbol
|
3493
|
+
def self.type
|
3494
|
+
:class_variable_read_node
|
3495
|
+
end
|
3216
3496
|
end
|
3217
3497
|
|
3218
3498
|
# Represents writing to a class variable in a context that doesn't have an explicit value.
|
@@ -3288,6 +3568,16 @@ module Prism
|
|
3288
3568
|
def type
|
3289
3569
|
:class_variable_target_node
|
3290
3570
|
end
|
3571
|
+
|
3572
|
+
# Similar to #type, this method returns a symbol that you can use for
|
3573
|
+
# splitting on the type of the node without having to do a long === chain.
|
3574
|
+
# Note that like #type, it will still be slower than using == for a single
|
3575
|
+
# class, but should be faster in a case statement or an array comparison.
|
3576
|
+
#
|
3577
|
+
# def self.type: () -> Symbol
|
3578
|
+
def self.type
|
3579
|
+
:class_variable_target_node
|
3580
|
+
end
|
3291
3581
|
end
|
3292
3582
|
|
3293
3583
|
# Represents writing to a class variable.
|
@@ -3387,6 +3677,16 @@ module Prism
|
|
3387
3677
|
def type
|
3388
3678
|
:class_variable_write_node
|
3389
3679
|
end
|
3680
|
+
|
3681
|
+
# Similar to #type, this method returns a symbol that you can use for
|
3682
|
+
# splitting on the type of the node without having to do a long === chain.
|
3683
|
+
# Note that like #type, it will still be slower than using == for a single
|
3684
|
+
# class, but should be faster in a case statement or an array comparison.
|
3685
|
+
#
|
3686
|
+
# def self.type: () -> Symbol
|
3687
|
+
def self.type
|
3688
|
+
:class_variable_write_node
|
3689
|
+
end
|
3390
3690
|
end
|
3391
3691
|
|
3392
3692
|
# Represents the use of the `&&=` operator for assignment to a constant.
|
@@ -3486,6 +3786,16 @@ module Prism
|
|
3486
3786
|
def type
|
3487
3787
|
:constant_and_write_node
|
3488
3788
|
end
|
3789
|
+
|
3790
|
+
# Similar to #type, this method returns a symbol that you can use for
|
3791
|
+
# splitting on the type of the node without having to do a long === chain.
|
3792
|
+
# Note that like #type, it will still be slower than using == for a single
|
3793
|
+
# class, but should be faster in a case statement or an array comparison.
|
3794
|
+
#
|
3795
|
+
# def self.type: () -> Symbol
|
3796
|
+
def self.type
|
3797
|
+
:constant_and_write_node
|
3798
|
+
end
|
3489
3799
|
end
|
3490
3800
|
|
3491
3801
|
# Represents assigning to a constant using an operator that isn't `=`.
|
@@ -3586,6 +3896,16 @@ module Prism
|
|
3586
3896
|
def type
|
3587
3897
|
:constant_operator_write_node
|
3588
3898
|
end
|
3899
|
+
|
3900
|
+
# Similar to #type, this method returns a symbol that you can use for
|
3901
|
+
# splitting on the type of the node without having to do a long === chain.
|
3902
|
+
# Note that like #type, it will still be slower than using == for a single
|
3903
|
+
# class, but should be faster in a case statement or an array comparison.
|
3904
|
+
#
|
3905
|
+
# def self.type: () -> Symbol
|
3906
|
+
def self.type
|
3907
|
+
:constant_operator_write_node
|
3908
|
+
end
|
3589
3909
|
end
|
3590
3910
|
|
3591
3911
|
# Represents the use of the `||=` operator for assignment to a constant.
|
@@ -3685,6 +4005,16 @@ module Prism
|
|
3685
4005
|
def type
|
3686
4006
|
:constant_or_write_node
|
3687
4007
|
end
|
4008
|
+
|
4009
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4010
|
+
# splitting on the type of the node without having to do a long === chain.
|
4011
|
+
# Note that like #type, it will still be slower than using == for a single
|
4012
|
+
# class, but should be faster in a case statement or an array comparison.
|
4013
|
+
#
|
4014
|
+
# def self.type: () -> Symbol
|
4015
|
+
def self.type
|
4016
|
+
:constant_or_write_node
|
4017
|
+
end
|
3688
4018
|
end
|
3689
4019
|
|
3690
4020
|
# Represents the use of the `&&=` operator for assignment to a constant path.
|
@@ -3779,6 +4109,16 @@ module Prism
|
|
3779
4109
|
def type
|
3780
4110
|
:constant_path_and_write_node
|
3781
4111
|
end
|
4112
|
+
|
4113
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4114
|
+
# splitting on the type of the node without having to do a long === chain.
|
4115
|
+
# Note that like #type, it will still be slower than using == for a single
|
4116
|
+
# class, but should be faster in a case statement or an array comparison.
|
4117
|
+
#
|
4118
|
+
# def self.type: () -> Symbol
|
4119
|
+
def self.type
|
4120
|
+
:constant_path_and_write_node
|
4121
|
+
end
|
3782
4122
|
end
|
3783
4123
|
|
3784
4124
|
# Represents accessing a constant through a path of `::` operators.
|
@@ -3880,6 +4220,16 @@ module Prism
|
|
3880
4220
|
def type
|
3881
4221
|
:constant_path_node
|
3882
4222
|
end
|
4223
|
+
|
4224
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4225
|
+
# splitting on the type of the node without having to do a long === chain.
|
4226
|
+
# Note that like #type, it will still be slower than using == for a single
|
4227
|
+
# class, but should be faster in a case statement or an array comparison.
|
4228
|
+
#
|
4229
|
+
# def self.type: () -> Symbol
|
4230
|
+
def self.type
|
4231
|
+
:constant_path_node
|
4232
|
+
end
|
3883
4233
|
end
|
3884
4234
|
|
3885
4235
|
# Represents assigning to a constant path using an operator that isn't `=`.
|
@@ -3975,6 +4325,16 @@ module Prism
|
|
3975
4325
|
def type
|
3976
4326
|
:constant_path_operator_write_node
|
3977
4327
|
end
|
4328
|
+
|
4329
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4330
|
+
# splitting on the type of the node without having to do a long === chain.
|
4331
|
+
# Note that like #type, it will still be slower than using == for a single
|
4332
|
+
# class, but should be faster in a case statement or an array comparison.
|
4333
|
+
#
|
4334
|
+
# def self.type: () -> Symbol
|
4335
|
+
def self.type
|
4336
|
+
:constant_path_operator_write_node
|
4337
|
+
end
|
3978
4338
|
end
|
3979
4339
|
|
3980
4340
|
# Represents the use of the `||=` operator for assignment to a constant path.
|
@@ -4069,6 +4429,16 @@ module Prism
|
|
4069
4429
|
def type
|
4070
4430
|
:constant_path_or_write_node
|
4071
4431
|
end
|
4432
|
+
|
4433
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4434
|
+
# splitting on the type of the node without having to do a long === chain.
|
4435
|
+
# Note that like #type, it will still be slower than using == for a single
|
4436
|
+
# class, but should be faster in a case statement or an array comparison.
|
4437
|
+
#
|
4438
|
+
# def self.type: () -> Symbol
|
4439
|
+
def self.type
|
4440
|
+
:constant_path_or_write_node
|
4441
|
+
end
|
4072
4442
|
end
|
4073
4443
|
|
4074
4444
|
# Represents writing to a constant path in a context that doesn't have an explicit value.
|
@@ -4170,6 +4540,16 @@ module Prism
|
|
4170
4540
|
def type
|
4171
4541
|
:constant_path_target_node
|
4172
4542
|
end
|
4543
|
+
|
4544
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4545
|
+
# splitting on the type of the node without having to do a long === chain.
|
4546
|
+
# Note that like #type, it will still be slower than using == for a single
|
4547
|
+
# class, but should be faster in a case statement or an array comparison.
|
4548
|
+
#
|
4549
|
+
# def self.type: () -> Symbol
|
4550
|
+
def self.type
|
4551
|
+
:constant_path_target_node
|
4552
|
+
end
|
4173
4553
|
end
|
4174
4554
|
|
4175
4555
|
# Represents writing to a constant path.
|
@@ -4270,6 +4650,16 @@ module Prism
|
|
4270
4650
|
def type
|
4271
4651
|
:constant_path_write_node
|
4272
4652
|
end
|
4653
|
+
|
4654
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4655
|
+
# splitting on the type of the node without having to do a long === chain.
|
4656
|
+
# Note that like #type, it will still be slower than using == for a single
|
4657
|
+
# class, but should be faster in a case statement or an array comparison.
|
4658
|
+
#
|
4659
|
+
# def self.type: () -> Symbol
|
4660
|
+
def self.type
|
4661
|
+
:constant_path_write_node
|
4662
|
+
end
|
4273
4663
|
end
|
4274
4664
|
|
4275
4665
|
# Represents referencing a constant.
|
@@ -4345,6 +4735,16 @@ module Prism
|
|
4345
4735
|
def type
|
4346
4736
|
:constant_read_node
|
4347
4737
|
end
|
4738
|
+
|
4739
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4740
|
+
# splitting on the type of the node without having to do a long === chain.
|
4741
|
+
# Note that like #type, it will still be slower than using == for a single
|
4742
|
+
# class, but should be faster in a case statement or an array comparison.
|
4743
|
+
#
|
4744
|
+
# def self.type: () -> Symbol
|
4745
|
+
def self.type
|
4746
|
+
:constant_read_node
|
4747
|
+
end
|
4348
4748
|
end
|
4349
4749
|
|
4350
4750
|
# Represents writing to a constant in a context that doesn't have an explicit value.
|
@@ -4420,6 +4820,16 @@ module Prism
|
|
4420
4820
|
def type
|
4421
4821
|
:constant_target_node
|
4422
4822
|
end
|
4823
|
+
|
4824
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4825
|
+
# splitting on the type of the node without having to do a long === chain.
|
4826
|
+
# Note that like #type, it will still be slower than using == for a single
|
4827
|
+
# class, but should be faster in a case statement or an array comparison.
|
4828
|
+
#
|
4829
|
+
# def self.type: () -> Symbol
|
4830
|
+
def self.type
|
4831
|
+
:constant_target_node
|
4832
|
+
end
|
4423
4833
|
end
|
4424
4834
|
|
4425
4835
|
# Represents writing to a constant.
|
@@ -4519,6 +4929,16 @@ module Prism
|
|
4519
4929
|
def type
|
4520
4930
|
:constant_write_node
|
4521
4931
|
end
|
4932
|
+
|
4933
|
+
# Similar to #type, this method returns a symbol that you can use for
|
4934
|
+
# splitting on the type of the node without having to do a long === chain.
|
4935
|
+
# Note that like #type, it will still be slower than using == for a single
|
4936
|
+
# class, but should be faster in a case statement or an array comparison.
|
4937
|
+
#
|
4938
|
+
# def self.type: () -> Symbol
|
4939
|
+
def self.type
|
4940
|
+
:constant_write_node
|
4941
|
+
end
|
4522
4942
|
end
|
4523
4943
|
|
4524
4944
|
# Represents a method definition.
|
@@ -4710,6 +5130,16 @@ module Prism
|
|
4710
5130
|
def type
|
4711
5131
|
:def_node
|
4712
5132
|
end
|
5133
|
+
|
5134
|
+
# Similar to #type, this method returns a symbol that you can use for
|
5135
|
+
# splitting on the type of the node without having to do a long === chain.
|
5136
|
+
# Note that like #type, it will still be slower than using == for a single
|
5137
|
+
# class, but should be faster in a case statement or an array comparison.
|
5138
|
+
#
|
5139
|
+
# def self.type: () -> Symbol
|
5140
|
+
def self.type
|
5141
|
+
:def_node
|
5142
|
+
end
|
4713
5143
|
end
|
4714
5144
|
|
4715
5145
|
# Represents the use of the `defined?` keyword.
|
@@ -4819,6 +5249,16 @@ module Prism
|
|
4819
5249
|
def type
|
4820
5250
|
:defined_node
|
4821
5251
|
end
|
5252
|
+
|
5253
|
+
# Similar to #type, this method returns a symbol that you can use for
|
5254
|
+
# splitting on the type of the node without having to do a long === chain.
|
5255
|
+
# Note that like #type, it will still be slower than using == for a single
|
5256
|
+
# class, but should be faster in a case statement or an array comparison.
|
5257
|
+
#
|
5258
|
+
# def self.type: () -> Symbol
|
5259
|
+
def self.type
|
5260
|
+
:defined_node
|
5261
|
+
end
|
4822
5262
|
end
|
4823
5263
|
|
4824
5264
|
# Represents an `else` clause in a `case`, `if`, or `unless` statement.
|
@@ -4923,6 +5363,16 @@ module Prism
|
|
4923
5363
|
def type
|
4924
5364
|
:else_node
|
4925
5365
|
end
|
5366
|
+
|
5367
|
+
# Similar to #type, this method returns a symbol that you can use for
|
5368
|
+
# splitting on the type of the node without having to do a long === chain.
|
5369
|
+
# Note that like #type, it will still be slower than using == for a single
|
5370
|
+
# class, but should be faster in a case statement or an array comparison.
|
5371
|
+
#
|
5372
|
+
# def self.type: () -> Symbol
|
5373
|
+
def self.type
|
5374
|
+
:else_node
|
5375
|
+
end
|
4926
5376
|
end
|
4927
5377
|
|
4928
5378
|
# Represents an interpolated set of statements.
|
@@ -5027,6 +5477,16 @@ module Prism
|
|
5027
5477
|
def type
|
5028
5478
|
:embedded_statements_node
|
5029
5479
|
end
|
5480
|
+
|
5481
|
+
# Similar to #type, this method returns a symbol that you can use for
|
5482
|
+
# splitting on the type of the node without having to do a long === chain.
|
5483
|
+
# Note that like #type, it will still be slower than using == for a single
|
5484
|
+
# class, but should be faster in a case statement or an array comparison.
|
5485
|
+
#
|
5486
|
+
# def self.type: () -> Symbol
|
5487
|
+
def self.type
|
5488
|
+
:embedded_statements_node
|
5489
|
+
end
|
5030
5490
|
end
|
5031
5491
|
|
5032
5492
|
# Represents an interpolated variable.
|
@@ -5114,6 +5574,16 @@ module Prism
|
|
5114
5574
|
def type
|
5115
5575
|
:embedded_variable_node
|
5116
5576
|
end
|
5577
|
+
|
5578
|
+
# Similar to #type, this method returns a symbol that you can use for
|
5579
|
+
# splitting on the type of the node without having to do a long === chain.
|
5580
|
+
# Note that like #type, it will still be slower than using == for a single
|
5581
|
+
# class, but should be faster in a case statement or an array comparison.
|
5582
|
+
#
|
5583
|
+
# def self.type: () -> Symbol
|
5584
|
+
def self.type
|
5585
|
+
:embedded_variable_node
|
5586
|
+
end
|
5117
5587
|
end
|
5118
5588
|
|
5119
5589
|
# Represents an `ensure` clause in a `begin` statement.
|
@@ -5222,6 +5692,16 @@ module Prism
|
|
5222
5692
|
def type
|
5223
5693
|
:ensure_node
|
5224
5694
|
end
|
5695
|
+
|
5696
|
+
# Similar to #type, this method returns a symbol that you can use for
|
5697
|
+
# splitting on the type of the node without having to do a long === chain.
|
5698
|
+
# Note that like #type, it will still be slower than using == for a single
|
5699
|
+
# class, but should be faster in a case statement or an array comparison.
|
5700
|
+
#
|
5701
|
+
# def self.type: () -> Symbol
|
5702
|
+
def self.type
|
5703
|
+
:ensure_node
|
5704
|
+
end
|
5225
5705
|
end
|
5226
5706
|
|
5227
5707
|
# Represents the use of the literal `false` keyword.
|
@@ -5291,6 +5771,16 @@ module Prism
|
|
5291
5771
|
def type
|
5292
5772
|
:false_node
|
5293
5773
|
end
|
5774
|
+
|
5775
|
+
# Similar to #type, this method returns a symbol that you can use for
|
5776
|
+
# splitting on the type of the node without having to do a long === chain.
|
5777
|
+
# Note that like #type, it will still be slower than using == for a single
|
5778
|
+
# class, but should be faster in a case statement or an array comparison.
|
5779
|
+
#
|
5780
|
+
# def self.type: () -> Symbol
|
5781
|
+
def self.type
|
5782
|
+
:false_node
|
5783
|
+
end
|
5294
5784
|
end
|
5295
5785
|
|
5296
5786
|
# Represents a find pattern in pattern matching.
|
@@ -5424,6 +5914,16 @@ module Prism
|
|
5424
5914
|
def type
|
5425
5915
|
:find_pattern_node
|
5426
5916
|
end
|
5917
|
+
|
5918
|
+
# Similar to #type, this method returns a symbol that you can use for
|
5919
|
+
# splitting on the type of the node without having to do a long === chain.
|
5920
|
+
# Note that like #type, it will still be slower than using == for a single
|
5921
|
+
# class, but should be faster in a case statement or an array comparison.
|
5922
|
+
#
|
5923
|
+
# def self.type: () -> Symbol
|
5924
|
+
def self.type
|
5925
|
+
:find_pattern_node
|
5926
|
+
end
|
5427
5927
|
end
|
5428
5928
|
|
5429
5929
|
# Represents the use of the `..` or `...` operators to create flip flops.
|
@@ -5541,6 +6041,16 @@ module Prism
|
|
5541
6041
|
def type
|
5542
6042
|
:flip_flop_node
|
5543
6043
|
end
|
6044
|
+
|
6045
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6046
|
+
# splitting on the type of the node without having to do a long === chain.
|
6047
|
+
# Note that like #type, it will still be slower than using == for a single
|
6048
|
+
# class, but should be faster in a case statement or an array comparison.
|
6049
|
+
#
|
6050
|
+
# def self.type: () -> Symbol
|
6051
|
+
def self.type
|
6052
|
+
:flip_flop_node
|
6053
|
+
end
|
5544
6054
|
end
|
5545
6055
|
|
5546
6056
|
# Represents a floating point number literal.
|
@@ -5610,6 +6120,16 @@ module Prism
|
|
5610
6120
|
def type
|
5611
6121
|
:float_node
|
5612
6122
|
end
|
6123
|
+
|
6124
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6125
|
+
# splitting on the type of the node without having to do a long === chain.
|
6126
|
+
# Note that like #type, it will still be slower than using == for a single
|
6127
|
+
# class, but should be faster in a case statement or an array comparison.
|
6128
|
+
#
|
6129
|
+
# def self.type: () -> Symbol
|
6130
|
+
def self.type
|
6131
|
+
:float_node
|
6132
|
+
end
|
5613
6133
|
end
|
5614
6134
|
|
5615
6135
|
# Represents the use of the `for` keyword.
|
@@ -5752,6 +6272,16 @@ module Prism
|
|
5752
6272
|
def type
|
5753
6273
|
:for_node
|
5754
6274
|
end
|
6275
|
+
|
6276
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6277
|
+
# splitting on the type of the node without having to do a long === chain.
|
6278
|
+
# Note that like #type, it will still be slower than using == for a single
|
6279
|
+
# class, but should be faster in a case statement or an array comparison.
|
6280
|
+
#
|
6281
|
+
# def self.type: () -> Symbol
|
6282
|
+
def self.type
|
6283
|
+
:for_node
|
6284
|
+
end
|
5755
6285
|
end
|
5756
6286
|
|
5757
6287
|
# Represents forwarding all arguments to this method to another method.
|
@@ -5823,6 +6353,16 @@ module Prism
|
|
5823
6353
|
def type
|
5824
6354
|
:forwarding_arguments_node
|
5825
6355
|
end
|
6356
|
+
|
6357
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6358
|
+
# splitting on the type of the node without having to do a long === chain.
|
6359
|
+
# Note that like #type, it will still be slower than using == for a single
|
6360
|
+
# class, but should be faster in a case statement or an array comparison.
|
6361
|
+
#
|
6362
|
+
# def self.type: () -> Symbol
|
6363
|
+
def self.type
|
6364
|
+
:forwarding_arguments_node
|
6365
|
+
end
|
5826
6366
|
end
|
5827
6367
|
|
5828
6368
|
# Represents the use of the forwarding parameter in a method, block, or lambda declaration.
|
@@ -5893,6 +6433,16 @@ module Prism
|
|
5893
6433
|
def type
|
5894
6434
|
:forwarding_parameter_node
|
5895
6435
|
end
|
6436
|
+
|
6437
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6438
|
+
# splitting on the type of the node without having to do a long === chain.
|
6439
|
+
# Note that like #type, it will still be slower than using == for a single
|
6440
|
+
# class, but should be faster in a case statement or an array comparison.
|
6441
|
+
#
|
6442
|
+
# def self.type: () -> Symbol
|
6443
|
+
def self.type
|
6444
|
+
:forwarding_parameter_node
|
6445
|
+
end
|
5896
6446
|
end
|
5897
6447
|
|
5898
6448
|
# Represents the use of the `super` keyword without parentheses or arguments.
|
@@ -5975,6 +6525,16 @@ module Prism
|
|
5975
6525
|
def type
|
5976
6526
|
:forwarding_super_node
|
5977
6527
|
end
|
6528
|
+
|
6529
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6530
|
+
# splitting on the type of the node without having to do a long === chain.
|
6531
|
+
# Note that like #type, it will still be slower than using == for a single
|
6532
|
+
# class, but should be faster in a case statement or an array comparison.
|
6533
|
+
#
|
6534
|
+
# def self.type: () -> Symbol
|
6535
|
+
def self.type
|
6536
|
+
:forwarding_super_node
|
6537
|
+
end
|
5978
6538
|
end
|
5979
6539
|
|
5980
6540
|
# Represents the use of the `&&=` operator for assignment to a global variable.
|
@@ -6074,6 +6634,16 @@ module Prism
|
|
6074
6634
|
def type
|
6075
6635
|
:global_variable_and_write_node
|
6076
6636
|
end
|
6637
|
+
|
6638
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6639
|
+
# splitting on the type of the node without having to do a long === chain.
|
6640
|
+
# Note that like #type, it will still be slower than using == for a single
|
6641
|
+
# class, but should be faster in a case statement or an array comparison.
|
6642
|
+
#
|
6643
|
+
# def self.type: () -> Symbol
|
6644
|
+
def self.type
|
6645
|
+
:global_variable_and_write_node
|
6646
|
+
end
|
6077
6647
|
end
|
6078
6648
|
|
6079
6649
|
# Represents assigning to a global variable using an operator that isn't `=`.
|
@@ -6174,6 +6744,16 @@ module Prism
|
|
6174
6744
|
def type
|
6175
6745
|
:global_variable_operator_write_node
|
6176
6746
|
end
|
6747
|
+
|
6748
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6749
|
+
# splitting on the type of the node without having to do a long === chain.
|
6750
|
+
# Note that like #type, it will still be slower than using == for a single
|
6751
|
+
# class, but should be faster in a case statement or an array comparison.
|
6752
|
+
#
|
6753
|
+
# def self.type: () -> Symbol
|
6754
|
+
def self.type
|
6755
|
+
:global_variable_operator_write_node
|
6756
|
+
end
|
6177
6757
|
end
|
6178
6758
|
|
6179
6759
|
# Represents the use of the `||=` operator for assignment to a global variable.
|
@@ -6273,6 +6853,16 @@ module Prism
|
|
6273
6853
|
def type
|
6274
6854
|
:global_variable_or_write_node
|
6275
6855
|
end
|
6856
|
+
|
6857
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6858
|
+
# splitting on the type of the node without having to do a long === chain.
|
6859
|
+
# Note that like #type, it will still be slower than using == for a single
|
6860
|
+
# class, but should be faster in a case statement or an array comparison.
|
6861
|
+
#
|
6862
|
+
# def self.type: () -> Symbol
|
6863
|
+
def self.type
|
6864
|
+
:global_variable_or_write_node
|
6865
|
+
end
|
6276
6866
|
end
|
6277
6867
|
|
6278
6868
|
# Represents referencing a global variable.
|
@@ -6348,6 +6938,16 @@ module Prism
|
|
6348
6938
|
def type
|
6349
6939
|
:global_variable_read_node
|
6350
6940
|
end
|
6941
|
+
|
6942
|
+
# Similar to #type, this method returns a symbol that you can use for
|
6943
|
+
# splitting on the type of the node without having to do a long === chain.
|
6944
|
+
# Note that like #type, it will still be slower than using == for a single
|
6945
|
+
# class, but should be faster in a case statement or an array comparison.
|
6946
|
+
#
|
6947
|
+
# def self.type: () -> Symbol
|
6948
|
+
def self.type
|
6949
|
+
:global_variable_read_node
|
6950
|
+
end
|
6351
6951
|
end
|
6352
6952
|
|
6353
6953
|
# Represents writing to a global variable in a context that doesn't have an explicit value.
|
@@ -6423,6 +7023,16 @@ module Prism
|
|
6423
7023
|
def type
|
6424
7024
|
:global_variable_target_node
|
6425
7025
|
end
|
7026
|
+
|
7027
|
+
# Similar to #type, this method returns a symbol that you can use for
|
7028
|
+
# splitting on the type of the node without having to do a long === chain.
|
7029
|
+
# Note that like #type, it will still be slower than using == for a single
|
7030
|
+
# class, but should be faster in a case statement or an array comparison.
|
7031
|
+
#
|
7032
|
+
# def self.type: () -> Symbol
|
7033
|
+
def self.type
|
7034
|
+
:global_variable_target_node
|
7035
|
+
end
|
6426
7036
|
end
|
6427
7037
|
|
6428
7038
|
# Represents writing to a global variable.
|
@@ -6522,6 +7132,16 @@ module Prism
|
|
6522
7132
|
def type
|
6523
7133
|
:global_variable_write_node
|
6524
7134
|
end
|
7135
|
+
|
7136
|
+
# Similar to #type, this method returns a symbol that you can use for
|
7137
|
+
# splitting on the type of the node without having to do a long === chain.
|
7138
|
+
# Note that like #type, it will still be slower than using == for a single
|
7139
|
+
# class, but should be faster in a case statement or an array comparison.
|
7140
|
+
#
|
7141
|
+
# def self.type: () -> Symbol
|
7142
|
+
def self.type
|
7143
|
+
:global_variable_write_node
|
7144
|
+
end
|
6525
7145
|
end
|
6526
7146
|
|
6527
7147
|
# Represents a hash literal.
|
@@ -6619,6 +7239,16 @@ module Prism
|
|
6619
7239
|
def type
|
6620
7240
|
:hash_node
|
6621
7241
|
end
|
7242
|
+
|
7243
|
+
# Similar to #type, this method returns a symbol that you can use for
|
7244
|
+
# splitting on the type of the node without having to do a long === chain.
|
7245
|
+
# Note that like #type, it will still be slower than using == for a single
|
7246
|
+
# class, but should be faster in a case statement or an array comparison.
|
7247
|
+
#
|
7248
|
+
# def self.type: () -> Symbol
|
7249
|
+
def self.type
|
7250
|
+
:hash_node
|
7251
|
+
end
|
6622
7252
|
end
|
6623
7253
|
|
6624
7254
|
# Represents a hash pattern in pattern matching.
|
@@ -6745,10 +7375,20 @@ module Prism
|
|
6745
7375
|
def type
|
6746
7376
|
:hash_pattern_node
|
6747
7377
|
end
|
6748
|
-
end
|
6749
7378
|
|
6750
|
-
|
6751
|
-
|
7379
|
+
# Similar to #type, this method returns a symbol that you can use for
|
7380
|
+
# splitting on the type of the node without having to do a long === chain.
|
7381
|
+
# Note that like #type, it will still be slower than using == for a single
|
7382
|
+
# class, but should be faster in a case statement or an array comparison.
|
7383
|
+
#
|
7384
|
+
# def self.type: () -> Symbol
|
7385
|
+
def self.type
|
7386
|
+
:hash_pattern_node
|
7387
|
+
end
|
7388
|
+
end
|
7389
|
+
|
7390
|
+
# Represents the use of the `if` keyword, either in the block form or the modifier form.
|
7391
|
+
#
|
6752
7392
|
# bar if foo
|
6753
7393
|
# ^^^^^^^^^^
|
6754
7394
|
#
|
@@ -6876,6 +7516,16 @@ module Prism
|
|
6876
7516
|
def type
|
6877
7517
|
:if_node
|
6878
7518
|
end
|
7519
|
+
|
7520
|
+
# Similar to #type, this method returns a symbol that you can use for
|
7521
|
+
# splitting on the type of the node without having to do a long === chain.
|
7522
|
+
# Note that like #type, it will still be slower than using == for a single
|
7523
|
+
# class, but should be faster in a case statement or an array comparison.
|
7524
|
+
#
|
7525
|
+
# def self.type: () -> Symbol
|
7526
|
+
def self.type
|
7527
|
+
:if_node
|
7528
|
+
end
|
6879
7529
|
end
|
6880
7530
|
|
6881
7531
|
# Represents an imaginary number literal.
|
@@ -6952,6 +7602,16 @@ module Prism
|
|
6952
7602
|
def type
|
6953
7603
|
:imaginary_node
|
6954
7604
|
end
|
7605
|
+
|
7606
|
+
# Similar to #type, this method returns a symbol that you can use for
|
7607
|
+
# splitting on the type of the node without having to do a long === chain.
|
7608
|
+
# Note that like #type, it will still be slower than using == for a single
|
7609
|
+
# class, but should be faster in a case statement or an array comparison.
|
7610
|
+
#
|
7611
|
+
# def self.type: () -> Symbol
|
7612
|
+
def self.type
|
7613
|
+
:imaginary_node
|
7614
|
+
end
|
6955
7615
|
end
|
6956
7616
|
|
6957
7617
|
# Represents a node that is implicitly being added to the tree but doesn't
|
@@ -7032,6 +7692,16 @@ module Prism
|
|
7032
7692
|
def type
|
7033
7693
|
:implicit_node
|
7034
7694
|
end
|
7695
|
+
|
7696
|
+
# Similar to #type, this method returns a symbol that you can use for
|
7697
|
+
# splitting on the type of the node without having to do a long === chain.
|
7698
|
+
# Note that like #type, it will still be slower than using == for a single
|
7699
|
+
# class, but should be faster in a case statement or an array comparison.
|
7700
|
+
#
|
7701
|
+
# def self.type: () -> Symbol
|
7702
|
+
def self.type
|
7703
|
+
:implicit_node
|
7704
|
+
end
|
7035
7705
|
end
|
7036
7706
|
|
7037
7707
|
# Represents the use of the `in` keyword in a case statement.
|
@@ -7144,6 +7814,16 @@ module Prism
|
|
7144
7814
|
def type
|
7145
7815
|
:in_node
|
7146
7816
|
end
|
7817
|
+
|
7818
|
+
# Similar to #type, this method returns a symbol that you can use for
|
7819
|
+
# splitting on the type of the node without having to do a long === chain.
|
7820
|
+
# Note that like #type, it will still be slower than using == for a single
|
7821
|
+
# class, but should be faster in a case statement or an array comparison.
|
7822
|
+
#
|
7823
|
+
# def self.type: () -> Symbol
|
7824
|
+
def self.type
|
7825
|
+
:in_node
|
7826
|
+
end
|
7147
7827
|
end
|
7148
7828
|
|
7149
7829
|
# Represents the use of the `&&=` operator for assignment to an instance variable.
|
@@ -7243,6 +7923,16 @@ module Prism
|
|
7243
7923
|
def type
|
7244
7924
|
:instance_variable_and_write_node
|
7245
7925
|
end
|
7926
|
+
|
7927
|
+
# Similar to #type, this method returns a symbol that you can use for
|
7928
|
+
# splitting on the type of the node without having to do a long === chain.
|
7929
|
+
# Note that like #type, it will still be slower than using == for a single
|
7930
|
+
# class, but should be faster in a case statement or an array comparison.
|
7931
|
+
#
|
7932
|
+
# def self.type: () -> Symbol
|
7933
|
+
def self.type
|
7934
|
+
:instance_variable_and_write_node
|
7935
|
+
end
|
7246
7936
|
end
|
7247
7937
|
|
7248
7938
|
# Represents assigning to an instance variable using an operator that isn't `=`.
|
@@ -7343,6 +8033,16 @@ module Prism
|
|
7343
8033
|
def type
|
7344
8034
|
:instance_variable_operator_write_node
|
7345
8035
|
end
|
8036
|
+
|
8037
|
+
# Similar to #type, this method returns a symbol that you can use for
|
8038
|
+
# splitting on the type of the node without having to do a long === chain.
|
8039
|
+
# Note that like #type, it will still be slower than using == for a single
|
8040
|
+
# class, but should be faster in a case statement or an array comparison.
|
8041
|
+
#
|
8042
|
+
# def self.type: () -> Symbol
|
8043
|
+
def self.type
|
8044
|
+
:instance_variable_operator_write_node
|
8045
|
+
end
|
7346
8046
|
end
|
7347
8047
|
|
7348
8048
|
# Represents the use of the `||=` operator for assignment to an instance variable.
|
@@ -7442,6 +8142,16 @@ module Prism
|
|
7442
8142
|
def type
|
7443
8143
|
:instance_variable_or_write_node
|
7444
8144
|
end
|
8145
|
+
|
8146
|
+
# Similar to #type, this method returns a symbol that you can use for
|
8147
|
+
# splitting on the type of the node without having to do a long === chain.
|
8148
|
+
# Note that like #type, it will still be slower than using == for a single
|
8149
|
+
# class, but should be faster in a case statement or an array comparison.
|
8150
|
+
#
|
8151
|
+
# def self.type: () -> Symbol
|
8152
|
+
def self.type
|
8153
|
+
:instance_variable_or_write_node
|
8154
|
+
end
|
7445
8155
|
end
|
7446
8156
|
|
7447
8157
|
# Represents referencing an instance variable.
|
@@ -7517,6 +8227,16 @@ module Prism
|
|
7517
8227
|
def type
|
7518
8228
|
:instance_variable_read_node
|
7519
8229
|
end
|
8230
|
+
|
8231
|
+
# Similar to #type, this method returns a symbol that you can use for
|
8232
|
+
# splitting on the type of the node without having to do a long === chain.
|
8233
|
+
# Note that like #type, it will still be slower than using == for a single
|
8234
|
+
# class, but should be faster in a case statement or an array comparison.
|
8235
|
+
#
|
8236
|
+
# def self.type: () -> Symbol
|
8237
|
+
def self.type
|
8238
|
+
:instance_variable_read_node
|
8239
|
+
end
|
7520
8240
|
end
|
7521
8241
|
|
7522
8242
|
# Represents writing to an instance variable in a context that doesn't have an explicit value.
|
@@ -7592,6 +8312,16 @@ module Prism
|
|
7592
8312
|
def type
|
7593
8313
|
:instance_variable_target_node
|
7594
8314
|
end
|
8315
|
+
|
8316
|
+
# Similar to #type, this method returns a symbol that you can use for
|
8317
|
+
# splitting on the type of the node without having to do a long === chain.
|
8318
|
+
# Note that like #type, it will still be slower than using == for a single
|
8319
|
+
# class, but should be faster in a case statement or an array comparison.
|
8320
|
+
#
|
8321
|
+
# def self.type: () -> Symbol
|
8322
|
+
def self.type
|
8323
|
+
:instance_variable_target_node
|
8324
|
+
end
|
7595
8325
|
end
|
7596
8326
|
|
7597
8327
|
# Represents writing to an instance variable.
|
@@ -7691,6 +8421,16 @@ module Prism
|
|
7691
8421
|
def type
|
7692
8422
|
:instance_variable_write_node
|
7693
8423
|
end
|
8424
|
+
|
8425
|
+
# Similar to #type, this method returns a symbol that you can use for
|
8426
|
+
# splitting on the type of the node without having to do a long === chain.
|
8427
|
+
# Note that like #type, it will still be slower than using == for a single
|
8428
|
+
# class, but should be faster in a case statement or an array comparison.
|
8429
|
+
#
|
8430
|
+
# def self.type: () -> Symbol
|
8431
|
+
def self.type
|
8432
|
+
:instance_variable_write_node
|
8433
|
+
end
|
7694
8434
|
end
|
7695
8435
|
|
7696
8436
|
# Represents an integer number literal.
|
@@ -7787,6 +8527,16 @@ module Prism
|
|
7787
8527
|
def type
|
7788
8528
|
:integer_node
|
7789
8529
|
end
|
8530
|
+
|
8531
|
+
# Similar to #type, this method returns a symbol that you can use for
|
8532
|
+
# splitting on the type of the node without having to do a long === chain.
|
8533
|
+
# Note that like #type, it will still be slower than using == for a single
|
8534
|
+
# class, but should be faster in a case statement or an array comparison.
|
8535
|
+
#
|
8536
|
+
# def self.type: () -> Symbol
|
8537
|
+
def self.type
|
8538
|
+
:integer_node
|
8539
|
+
end
|
7790
8540
|
end
|
7791
8541
|
|
7792
8542
|
# Represents a regular expression literal that contains interpolation that
|
@@ -7886,6 +8636,11 @@ module Prism
|
|
7886
8636
|
flags.anybits?(RegularExpressionFlags::MULTI_LINE)
|
7887
8637
|
end
|
7888
8638
|
|
8639
|
+
# def once?: () -> bool
|
8640
|
+
def once?
|
8641
|
+
flags.anybits?(RegularExpressionFlags::ONCE)
|
8642
|
+
end
|
8643
|
+
|
7889
8644
|
# def euc_jp?: () -> bool
|
7890
8645
|
def euc_jp?
|
7891
8646
|
flags.anybits?(RegularExpressionFlags::EUC_JP)
|
@@ -7906,17 +8661,12 @@ module Prism
|
|
7906
8661
|
flags.anybits?(RegularExpressionFlags::UTF_8)
|
7907
8662
|
end
|
7908
8663
|
|
7909
|
-
# def once?: () -> bool
|
7910
|
-
def once?
|
7911
|
-
flags.anybits?(RegularExpressionFlags::ONCE)
|
7912
|
-
end
|
7913
|
-
|
7914
8664
|
def inspect(inspector = NodeInspector.new)
|
7915
8665
|
inspector << inspector.header(self)
|
7916
8666
|
inspector << "├── opening_loc: #{inspector.location(opening_loc)}\n"
|
7917
8667
|
inspector << "├── parts: #{inspector.list("#{inspector.prefix}│ ", parts)}"
|
7918
8668
|
inspector << "├── closing_loc: #{inspector.location(closing_loc)}\n"
|
7919
|
-
flags = [("ignore_case" if ignore_case?), ("extended" if extended?), ("multi_line" if multi_line?), ("
|
8669
|
+
flags = [("ignore_case" if ignore_case?), ("extended" if extended?), ("multi_line" if multi_line?), ("once" if once?), ("euc_jp" if euc_jp?), ("ascii_8bit" if ascii_8bit?), ("windows_31j" if windows_31j?), ("utf_8" if utf_8?)].compact
|
7920
8670
|
inspector << "└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n"
|
7921
8671
|
inspector.to_str
|
7922
8672
|
end
|
@@ -7938,6 +8688,16 @@ module Prism
|
|
7938
8688
|
def type
|
7939
8689
|
:interpolated_match_last_line_node
|
7940
8690
|
end
|
8691
|
+
|
8692
|
+
# Similar to #type, this method returns a symbol that you can use for
|
8693
|
+
# splitting on the type of the node without having to do a long === chain.
|
8694
|
+
# Note that like #type, it will still be slower than using == for a single
|
8695
|
+
# class, but should be faster in a case statement or an array comparison.
|
8696
|
+
#
|
8697
|
+
# def self.type: () -> Symbol
|
8698
|
+
def self.type
|
8699
|
+
:interpolated_match_last_line_node
|
8700
|
+
end
|
7941
8701
|
end
|
7942
8702
|
|
7943
8703
|
# Represents a regular expression literal that contains interpolation.
|
@@ -8035,6 +8795,11 @@ module Prism
|
|
8035
8795
|
flags.anybits?(RegularExpressionFlags::MULTI_LINE)
|
8036
8796
|
end
|
8037
8797
|
|
8798
|
+
# def once?: () -> bool
|
8799
|
+
def once?
|
8800
|
+
flags.anybits?(RegularExpressionFlags::ONCE)
|
8801
|
+
end
|
8802
|
+
|
8038
8803
|
# def euc_jp?: () -> bool
|
8039
8804
|
def euc_jp?
|
8040
8805
|
flags.anybits?(RegularExpressionFlags::EUC_JP)
|
@@ -8055,17 +8820,12 @@ module Prism
|
|
8055
8820
|
flags.anybits?(RegularExpressionFlags::UTF_8)
|
8056
8821
|
end
|
8057
8822
|
|
8058
|
-
# def once?: () -> bool
|
8059
|
-
def once?
|
8060
|
-
flags.anybits?(RegularExpressionFlags::ONCE)
|
8061
|
-
end
|
8062
|
-
|
8063
8823
|
def inspect(inspector = NodeInspector.new)
|
8064
8824
|
inspector << inspector.header(self)
|
8065
8825
|
inspector << "├── opening_loc: #{inspector.location(opening_loc)}\n"
|
8066
8826
|
inspector << "├── parts: #{inspector.list("#{inspector.prefix}│ ", parts)}"
|
8067
8827
|
inspector << "├── closing_loc: #{inspector.location(closing_loc)}\n"
|
8068
|
-
flags = [("ignore_case" if ignore_case?), ("extended" if extended?), ("multi_line" if multi_line?), ("
|
8828
|
+
flags = [("ignore_case" if ignore_case?), ("extended" if extended?), ("multi_line" if multi_line?), ("once" if once?), ("euc_jp" if euc_jp?), ("ascii_8bit" if ascii_8bit?), ("windows_31j" if windows_31j?), ("utf_8" if utf_8?)].compact
|
8069
8829
|
inspector << "└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n"
|
8070
8830
|
inspector.to_str
|
8071
8831
|
end
|
@@ -8087,6 +8847,16 @@ module Prism
|
|
8087
8847
|
def type
|
8088
8848
|
:interpolated_regular_expression_node
|
8089
8849
|
end
|
8850
|
+
|
8851
|
+
# Similar to #type, this method returns a symbol that you can use for
|
8852
|
+
# splitting on the type of the node without having to do a long === chain.
|
8853
|
+
# Note that like #type, it will still be slower than using == for a single
|
8854
|
+
# class, but should be faster in a case statement or an array comparison.
|
8855
|
+
#
|
8856
|
+
# def self.type: () -> Symbol
|
8857
|
+
def self.type
|
8858
|
+
:interpolated_regular_expression_node
|
8859
|
+
end
|
8090
8860
|
end
|
8091
8861
|
|
8092
8862
|
# Represents a string literal that contains interpolation.
|
@@ -8189,6 +8959,16 @@ module Prism
|
|
8189
8959
|
def type
|
8190
8960
|
:interpolated_string_node
|
8191
8961
|
end
|
8962
|
+
|
8963
|
+
# Similar to #type, this method returns a symbol that you can use for
|
8964
|
+
# splitting on the type of the node without having to do a long === chain.
|
8965
|
+
# Note that like #type, it will still be slower than using == for a single
|
8966
|
+
# class, but should be faster in a case statement or an array comparison.
|
8967
|
+
#
|
8968
|
+
# def self.type: () -> Symbol
|
8969
|
+
def self.type
|
8970
|
+
:interpolated_string_node
|
8971
|
+
end
|
8192
8972
|
end
|
8193
8973
|
|
8194
8974
|
# Represents a symbol literal that contains interpolation.
|
@@ -8291,6 +9071,16 @@ module Prism
|
|
8291
9071
|
def type
|
8292
9072
|
:interpolated_symbol_node
|
8293
9073
|
end
|
9074
|
+
|
9075
|
+
# Similar to #type, this method returns a symbol that you can use for
|
9076
|
+
# splitting on the type of the node without having to do a long === chain.
|
9077
|
+
# Note that like #type, it will still be slower than using == for a single
|
9078
|
+
# class, but should be faster in a case statement or an array comparison.
|
9079
|
+
#
|
9080
|
+
# def self.type: () -> Symbol
|
9081
|
+
def self.type
|
9082
|
+
:interpolated_symbol_node
|
9083
|
+
end
|
8294
9084
|
end
|
8295
9085
|
|
8296
9086
|
# Represents an xstring literal that contains interpolation.
|
@@ -8393,6 +9183,16 @@ module Prism
|
|
8393
9183
|
def type
|
8394
9184
|
:interpolated_x_string_node
|
8395
9185
|
end
|
9186
|
+
|
9187
|
+
# Similar to #type, this method returns a symbol that you can use for
|
9188
|
+
# splitting on the type of the node without having to do a long === chain.
|
9189
|
+
# Note that like #type, it will still be slower than using == for a single
|
9190
|
+
# class, but should be faster in a case statement or an array comparison.
|
9191
|
+
#
|
9192
|
+
# def self.type: () -> Symbol
|
9193
|
+
def self.type
|
9194
|
+
:interpolated_x_string_node
|
9195
|
+
end
|
8396
9196
|
end
|
8397
9197
|
|
8398
9198
|
# Represents a hash literal without opening and closing braces.
|
@@ -8468,6 +9268,16 @@ module Prism
|
|
8468
9268
|
def type
|
8469
9269
|
:keyword_hash_node
|
8470
9270
|
end
|
9271
|
+
|
9272
|
+
# Similar to #type, this method returns a symbol that you can use for
|
9273
|
+
# splitting on the type of the node without having to do a long === chain.
|
9274
|
+
# Note that like #type, it will still be slower than using == for a single
|
9275
|
+
# class, but should be faster in a case statement or an array comparison.
|
9276
|
+
#
|
9277
|
+
# def self.type: () -> Symbol
|
9278
|
+
def self.type
|
9279
|
+
:keyword_hash_node
|
9280
|
+
end
|
8471
9281
|
end
|
8472
9282
|
|
8473
9283
|
# Represents a keyword parameter to a method, block, or lambda definition.
|
@@ -8567,6 +9377,16 @@ module Prism
|
|
8567
9377
|
def type
|
8568
9378
|
:keyword_parameter_node
|
8569
9379
|
end
|
9380
|
+
|
9381
|
+
# Similar to #type, this method returns a symbol that you can use for
|
9382
|
+
# splitting on the type of the node without having to do a long === chain.
|
9383
|
+
# Note that like #type, it will still be slower than using == for a single
|
9384
|
+
# class, but should be faster in a case statement or an array comparison.
|
9385
|
+
#
|
9386
|
+
# def self.type: () -> Symbol
|
9387
|
+
def self.type
|
9388
|
+
:keyword_parameter_node
|
9389
|
+
end
|
8570
9390
|
end
|
8571
9391
|
|
8572
9392
|
# Represents a keyword rest parameter to a method, block, or lambda definition.
|
@@ -8660,6 +9480,16 @@ module Prism
|
|
8660
9480
|
def type
|
8661
9481
|
:keyword_rest_parameter_node
|
8662
9482
|
end
|
9483
|
+
|
9484
|
+
# Similar to #type, this method returns a symbol that you can use for
|
9485
|
+
# splitting on the type of the node without having to do a long === chain.
|
9486
|
+
# Note that like #type, it will still be slower than using == for a single
|
9487
|
+
# class, but should be faster in a case statement or an array comparison.
|
9488
|
+
#
|
9489
|
+
# def self.type: () -> Symbol
|
9490
|
+
def self.type
|
9491
|
+
:keyword_rest_parameter_node
|
9492
|
+
end
|
8663
9493
|
end
|
8664
9494
|
|
8665
9495
|
# Represents using a lambda literal (not the lambda method call).
|
@@ -8793,6 +9623,16 @@ module Prism
|
|
8793
9623
|
def type
|
8794
9624
|
:lambda_node
|
8795
9625
|
end
|
9626
|
+
|
9627
|
+
# Similar to #type, this method returns a symbol that you can use for
|
9628
|
+
# splitting on the type of the node without having to do a long === chain.
|
9629
|
+
# Note that like #type, it will still be slower than using == for a single
|
9630
|
+
# class, but should be faster in a case statement or an array comparison.
|
9631
|
+
#
|
9632
|
+
# def self.type: () -> Symbol
|
9633
|
+
def self.type
|
9634
|
+
:lambda_node
|
9635
|
+
end
|
8796
9636
|
end
|
8797
9637
|
|
8798
9638
|
# Represents the use of the `&&=` operator for assignment to a local variable.
|
@@ -8898,6 +9738,16 @@ module Prism
|
|
8898
9738
|
def type
|
8899
9739
|
:local_variable_and_write_node
|
8900
9740
|
end
|
9741
|
+
|
9742
|
+
# Similar to #type, this method returns a symbol that you can use for
|
9743
|
+
# splitting on the type of the node without having to do a long === chain.
|
9744
|
+
# Note that like #type, it will still be slower than using == for a single
|
9745
|
+
# class, but should be faster in a case statement or an array comparison.
|
9746
|
+
#
|
9747
|
+
# def self.type: () -> Symbol
|
9748
|
+
def self.type
|
9749
|
+
:local_variable_and_write_node
|
9750
|
+
end
|
8901
9751
|
end
|
8902
9752
|
|
8903
9753
|
# Represents assigning to a local variable using an operator that isn't `=`.
|
@@ -9004,6 +9854,16 @@ module Prism
|
|
9004
9854
|
def type
|
9005
9855
|
:local_variable_operator_write_node
|
9006
9856
|
end
|
9857
|
+
|
9858
|
+
# Similar to #type, this method returns a symbol that you can use for
|
9859
|
+
# splitting on the type of the node without having to do a long === chain.
|
9860
|
+
# Note that like #type, it will still be slower than using == for a single
|
9861
|
+
# class, but should be faster in a case statement or an array comparison.
|
9862
|
+
#
|
9863
|
+
# def self.type: () -> Symbol
|
9864
|
+
def self.type
|
9865
|
+
:local_variable_operator_write_node
|
9866
|
+
end
|
9007
9867
|
end
|
9008
9868
|
|
9009
9869
|
# Represents the use of the `||=` operator for assignment to a local variable.
|
@@ -9109,6 +9969,16 @@ module Prism
|
|
9109
9969
|
def type
|
9110
9970
|
:local_variable_or_write_node
|
9111
9971
|
end
|
9972
|
+
|
9973
|
+
# Similar to #type, this method returns a symbol that you can use for
|
9974
|
+
# splitting on the type of the node without having to do a long === chain.
|
9975
|
+
# Note that like #type, it will still be slower than using == for a single
|
9976
|
+
# class, but should be faster in a case statement or an array comparison.
|
9977
|
+
#
|
9978
|
+
# def self.type: () -> Symbol
|
9979
|
+
def self.type
|
9980
|
+
:local_variable_or_write_node
|
9981
|
+
end
|
9112
9982
|
end
|
9113
9983
|
|
9114
9984
|
# Represents reading a local variable. Note that this requires that a local
|
@@ -9192,6 +10062,16 @@ module Prism
|
|
9192
10062
|
def type
|
9193
10063
|
:local_variable_read_node
|
9194
10064
|
end
|
10065
|
+
|
10066
|
+
# Similar to #type, this method returns a symbol that you can use for
|
10067
|
+
# splitting on the type of the node without having to do a long === chain.
|
10068
|
+
# Note that like #type, it will still be slower than using == for a single
|
10069
|
+
# class, but should be faster in a case statement or an array comparison.
|
10070
|
+
#
|
10071
|
+
# def self.type: () -> Symbol
|
10072
|
+
def self.type
|
10073
|
+
:local_variable_read_node
|
10074
|
+
end
|
9195
10075
|
end
|
9196
10076
|
|
9197
10077
|
# Represents writing to a local variable in a context that doesn't have an explicit value.
|
@@ -9273,6 +10153,16 @@ module Prism
|
|
9273
10153
|
def type
|
9274
10154
|
:local_variable_target_node
|
9275
10155
|
end
|
10156
|
+
|
10157
|
+
# Similar to #type, this method returns a symbol that you can use for
|
10158
|
+
# splitting on the type of the node without having to do a long === chain.
|
10159
|
+
# Note that like #type, it will still be slower than using == for a single
|
10160
|
+
# class, but should be faster in a case statement or an array comparison.
|
10161
|
+
#
|
10162
|
+
# def self.type: () -> Symbol
|
10163
|
+
def self.type
|
10164
|
+
:local_variable_target_node
|
10165
|
+
end
|
9276
10166
|
end
|
9277
10167
|
|
9278
10168
|
# Represents writing to a local variable.
|
@@ -9378,6 +10268,16 @@ module Prism
|
|
9378
10268
|
def type
|
9379
10269
|
:local_variable_write_node
|
9380
10270
|
end
|
10271
|
+
|
10272
|
+
# Similar to #type, this method returns a symbol that you can use for
|
10273
|
+
# splitting on the type of the node without having to do a long === chain.
|
10274
|
+
# Note that like #type, it will still be slower than using == for a single
|
10275
|
+
# class, but should be faster in a case statement or an array comparison.
|
10276
|
+
#
|
10277
|
+
# def self.type: () -> Symbol
|
10278
|
+
def self.type
|
10279
|
+
:local_variable_write_node
|
10280
|
+
end
|
9381
10281
|
end
|
9382
10282
|
|
9383
10283
|
# Represents a regular expression literal used in the predicate of a
|
@@ -9482,6 +10382,11 @@ module Prism
|
|
9482
10382
|
flags.anybits?(RegularExpressionFlags::MULTI_LINE)
|
9483
10383
|
end
|
9484
10384
|
|
10385
|
+
# def once?: () -> bool
|
10386
|
+
def once?
|
10387
|
+
flags.anybits?(RegularExpressionFlags::ONCE)
|
10388
|
+
end
|
10389
|
+
|
9485
10390
|
# def euc_jp?: () -> bool
|
9486
10391
|
def euc_jp?
|
9487
10392
|
flags.anybits?(RegularExpressionFlags::EUC_JP)
|
@@ -9502,18 +10407,13 @@ module Prism
|
|
9502
10407
|
flags.anybits?(RegularExpressionFlags::UTF_8)
|
9503
10408
|
end
|
9504
10409
|
|
9505
|
-
# def once?: () -> bool
|
9506
|
-
def once?
|
9507
|
-
flags.anybits?(RegularExpressionFlags::ONCE)
|
9508
|
-
end
|
9509
|
-
|
9510
10410
|
def inspect(inspector = NodeInspector.new)
|
9511
10411
|
inspector << inspector.header(self)
|
9512
10412
|
inspector << "├── opening_loc: #{inspector.location(opening_loc)}\n"
|
9513
10413
|
inspector << "├── content_loc: #{inspector.location(content_loc)}\n"
|
9514
10414
|
inspector << "├── closing_loc: #{inspector.location(closing_loc)}\n"
|
9515
10415
|
inspector << "├── unescaped: #{unescaped.inspect}\n"
|
9516
|
-
flags = [("ignore_case" if ignore_case?), ("extended" if extended?), ("multi_line" if multi_line?), ("
|
10416
|
+
flags = [("ignore_case" if ignore_case?), ("extended" if extended?), ("multi_line" if multi_line?), ("once" if once?), ("euc_jp" if euc_jp?), ("ascii_8bit" if ascii_8bit?), ("windows_31j" if windows_31j?), ("utf_8" if utf_8?)].compact
|
9517
10417
|
inspector << "└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n"
|
9518
10418
|
inspector.to_str
|
9519
10419
|
end
|
@@ -9535,6 +10435,16 @@ module Prism
|
|
9535
10435
|
def type
|
9536
10436
|
:match_last_line_node
|
9537
10437
|
end
|
10438
|
+
|
10439
|
+
# Similar to #type, this method returns a symbol that you can use for
|
10440
|
+
# splitting on the type of the node without having to do a long === chain.
|
10441
|
+
# Note that like #type, it will still be slower than using == for a single
|
10442
|
+
# class, but should be faster in a case statement or an array comparison.
|
10443
|
+
#
|
10444
|
+
# def self.type: () -> Symbol
|
10445
|
+
def self.type
|
10446
|
+
:match_last_line_node
|
10447
|
+
end
|
9538
10448
|
end
|
9539
10449
|
|
9540
10450
|
# Represents the use of the modifier `in` operator.
|
@@ -9629,6 +10539,16 @@ module Prism
|
|
9629
10539
|
def type
|
9630
10540
|
:match_predicate_node
|
9631
10541
|
end
|
10542
|
+
|
10543
|
+
# Similar to #type, this method returns a symbol that you can use for
|
10544
|
+
# splitting on the type of the node without having to do a long === chain.
|
10545
|
+
# Note that like #type, it will still be slower than using == for a single
|
10546
|
+
# class, but should be faster in a case statement or an array comparison.
|
10547
|
+
#
|
10548
|
+
# def self.type: () -> Symbol
|
10549
|
+
def self.type
|
10550
|
+
:match_predicate_node
|
10551
|
+
end
|
9632
10552
|
end
|
9633
10553
|
|
9634
10554
|
# Represents the use of the `=>` operator.
|
@@ -9723,6 +10643,16 @@ module Prism
|
|
9723
10643
|
def type
|
9724
10644
|
:match_required_node
|
9725
10645
|
end
|
10646
|
+
|
10647
|
+
# Similar to #type, this method returns a symbol that you can use for
|
10648
|
+
# splitting on the type of the node without having to do a long === chain.
|
10649
|
+
# Note that like #type, it will still be slower than using == for a single
|
10650
|
+
# class, but should be faster in a case statement or an array comparison.
|
10651
|
+
#
|
10652
|
+
# def self.type: () -> Symbol
|
10653
|
+
def self.type
|
10654
|
+
:match_required_node
|
10655
|
+
end
|
9726
10656
|
end
|
9727
10657
|
|
9728
10658
|
# Represents writing local variables using a regular expression match with
|
@@ -9806,6 +10736,16 @@ module Prism
|
|
9806
10736
|
def type
|
9807
10737
|
:match_write_node
|
9808
10738
|
end
|
10739
|
+
|
10740
|
+
# Similar to #type, this method returns a symbol that you can use for
|
10741
|
+
# splitting on the type of the node without having to do a long === chain.
|
10742
|
+
# Note that like #type, it will still be slower than using == for a single
|
10743
|
+
# class, but should be faster in a case statement or an array comparison.
|
10744
|
+
#
|
10745
|
+
# def self.type: () -> Symbol
|
10746
|
+
def self.type
|
10747
|
+
:match_write_node
|
10748
|
+
end
|
9809
10749
|
end
|
9810
10750
|
|
9811
10751
|
# Represents a node that is missing from the source and results in a syntax
|
@@ -9873,6 +10813,16 @@ module Prism
|
|
9873
10813
|
def type
|
9874
10814
|
:missing_node
|
9875
10815
|
end
|
10816
|
+
|
10817
|
+
# Similar to #type, this method returns a symbol that you can use for
|
10818
|
+
# splitting on the type of the node without having to do a long === chain.
|
10819
|
+
# Note that like #type, it will still be slower than using == for a single
|
10820
|
+
# class, but should be faster in a case statement or an array comparison.
|
10821
|
+
#
|
10822
|
+
# def self.type: () -> Symbol
|
10823
|
+
def self.type
|
10824
|
+
:missing_node
|
10825
|
+
end
|
9876
10826
|
end
|
9877
10827
|
|
9878
10828
|
# Represents a module declaration involving the `module` keyword.
|
@@ -9997,6 +10947,16 @@ module Prism
|
|
9997
10947
|
def type
|
9998
10948
|
:module_node
|
9999
10949
|
end
|
10950
|
+
|
10951
|
+
# Similar to #type, this method returns a symbol that you can use for
|
10952
|
+
# splitting on the type of the node without having to do a long === chain.
|
10953
|
+
# Note that like #type, it will still be slower than using == for a single
|
10954
|
+
# class, but should be faster in a case statement or an array comparison.
|
10955
|
+
#
|
10956
|
+
# def self.type: () -> Symbol
|
10957
|
+
def self.type
|
10958
|
+
:module_node
|
10959
|
+
end
|
10000
10960
|
end
|
10001
10961
|
|
10002
10962
|
# Represents a multi-target expression.
|
@@ -10094,6 +11054,16 @@ module Prism
|
|
10094
11054
|
def type
|
10095
11055
|
:multi_target_node
|
10096
11056
|
end
|
11057
|
+
|
11058
|
+
# Similar to #type, this method returns a symbol that you can use for
|
11059
|
+
# splitting on the type of the node without having to do a long === chain.
|
11060
|
+
# Note that like #type, it will still be slower than using == for a single
|
11061
|
+
# class, but should be faster in a case statement or an array comparison.
|
11062
|
+
#
|
11063
|
+
# def self.type: () -> Symbol
|
11064
|
+
def self.type
|
11065
|
+
:multi_target_node
|
11066
|
+
end
|
10097
11067
|
end
|
10098
11068
|
|
10099
11069
|
# Represents a write to a multi-target expression.
|
@@ -10209,6 +11179,16 @@ module Prism
|
|
10209
11179
|
def type
|
10210
11180
|
:multi_write_node
|
10211
11181
|
end
|
11182
|
+
|
11183
|
+
# Similar to #type, this method returns a symbol that you can use for
|
11184
|
+
# splitting on the type of the node without having to do a long === chain.
|
11185
|
+
# Note that like #type, it will still be slower than using == for a single
|
11186
|
+
# class, but should be faster in a case statement or an array comparison.
|
11187
|
+
#
|
11188
|
+
# def self.type: () -> Symbol
|
11189
|
+
def self.type
|
11190
|
+
:multi_write_node
|
11191
|
+
end
|
10212
11192
|
end
|
10213
11193
|
|
10214
11194
|
# Represents the use of the `next` keyword.
|
@@ -10302,6 +11282,16 @@ module Prism
|
|
10302
11282
|
def type
|
10303
11283
|
:next_node
|
10304
11284
|
end
|
11285
|
+
|
11286
|
+
# Similar to #type, this method returns a symbol that you can use for
|
11287
|
+
# splitting on the type of the node without having to do a long === chain.
|
11288
|
+
# Note that like #type, it will still be slower than using == for a single
|
11289
|
+
# class, but should be faster in a case statement or an array comparison.
|
11290
|
+
#
|
11291
|
+
# def self.type: () -> Symbol
|
11292
|
+
def self.type
|
11293
|
+
:next_node
|
11294
|
+
end
|
10305
11295
|
end
|
10306
11296
|
|
10307
11297
|
# Represents the use of the `nil` keyword.
|
@@ -10371,6 +11361,16 @@ module Prism
|
|
10371
11361
|
def type
|
10372
11362
|
:nil_node
|
10373
11363
|
end
|
11364
|
+
|
11365
|
+
# Similar to #type, this method returns a symbol that you can use for
|
11366
|
+
# splitting on the type of the node without having to do a long === chain.
|
11367
|
+
# Note that like #type, it will still be slower than using == for a single
|
11368
|
+
# class, but should be faster in a case statement or an array comparison.
|
11369
|
+
#
|
11370
|
+
# def self.type: () -> Symbol
|
11371
|
+
def self.type
|
11372
|
+
:nil_node
|
11373
|
+
end
|
10374
11374
|
end
|
10375
11375
|
|
10376
11376
|
# Represents the use of `**nil` inside method arguments.
|
@@ -10463,6 +11463,16 @@ module Prism
|
|
10463
11463
|
def type
|
10464
11464
|
:no_keywords_parameter_node
|
10465
11465
|
end
|
11466
|
+
|
11467
|
+
# Similar to #type, this method returns a symbol that you can use for
|
11468
|
+
# splitting on the type of the node without having to do a long === chain.
|
11469
|
+
# Note that like #type, it will still be slower than using == for a single
|
11470
|
+
# class, but should be faster in a case statement or an array comparison.
|
11471
|
+
#
|
11472
|
+
# def self.type: () -> Symbol
|
11473
|
+
def self.type
|
11474
|
+
:no_keywords_parameter_node
|
11475
|
+
end
|
10466
11476
|
end
|
10467
11477
|
|
10468
11478
|
# Represents reading a numbered reference to a capture in the previous match.
|
@@ -10538,6 +11548,16 @@ module Prism
|
|
10538
11548
|
def type
|
10539
11549
|
:numbered_reference_read_node
|
10540
11550
|
end
|
11551
|
+
|
11552
|
+
# Similar to #type, this method returns a symbol that you can use for
|
11553
|
+
# splitting on the type of the node without having to do a long === chain.
|
11554
|
+
# Note that like #type, it will still be slower than using == for a single
|
11555
|
+
# class, but should be faster in a case statement or an array comparison.
|
11556
|
+
#
|
11557
|
+
# def self.type: () -> Symbol
|
11558
|
+
def self.type
|
11559
|
+
:numbered_reference_read_node
|
11560
|
+
end
|
10541
11561
|
end
|
10542
11562
|
|
10543
11563
|
# Represents an optional parameter to a method, block, or lambda definition.
|
@@ -10638,6 +11658,16 @@ module Prism
|
|
10638
11658
|
def type
|
10639
11659
|
:optional_parameter_node
|
10640
11660
|
end
|
11661
|
+
|
11662
|
+
# Similar to #type, this method returns a symbol that you can use for
|
11663
|
+
# splitting on the type of the node without having to do a long === chain.
|
11664
|
+
# Note that like #type, it will still be slower than using == for a single
|
11665
|
+
# class, but should be faster in a case statement or an array comparison.
|
11666
|
+
#
|
11667
|
+
# def self.type: () -> Symbol
|
11668
|
+
def self.type
|
11669
|
+
:optional_parameter_node
|
11670
|
+
end
|
10641
11671
|
end
|
10642
11672
|
|
10643
11673
|
# Represents the use of the `||` operator or the `or` keyword.
|
@@ -10732,6 +11762,16 @@ module Prism
|
|
10732
11762
|
def type
|
10733
11763
|
:or_node
|
10734
11764
|
end
|
11765
|
+
|
11766
|
+
# Similar to #type, this method returns a symbol that you can use for
|
11767
|
+
# splitting on the type of the node without having to do a long === chain.
|
11768
|
+
# Note that like #type, it will still be slower than using == for a single
|
11769
|
+
# class, but should be faster in a case statement or an array comparison.
|
11770
|
+
#
|
11771
|
+
# def self.type: () -> Symbol
|
11772
|
+
def self.type
|
11773
|
+
:or_node
|
11774
|
+
end
|
10735
11775
|
end
|
10736
11776
|
|
10737
11777
|
# Represents the list of parameters on a method, block, or lambda definition.
|
@@ -10867,6 +11907,16 @@ module Prism
|
|
10867
11907
|
def type
|
10868
11908
|
:parameters_node
|
10869
11909
|
end
|
11910
|
+
|
11911
|
+
# Similar to #type, this method returns a symbol that you can use for
|
11912
|
+
# splitting on the type of the node without having to do a long === chain.
|
11913
|
+
# Note that like #type, it will still be slower than using == for a single
|
11914
|
+
# class, but should be faster in a case statement or an array comparison.
|
11915
|
+
#
|
11916
|
+
# def self.type: () -> Symbol
|
11917
|
+
def self.type
|
11918
|
+
:parameters_node
|
11919
|
+
end
|
10870
11920
|
end
|
10871
11921
|
|
10872
11922
|
# Represents a parenthesized expression
|
@@ -10975,6 +12025,16 @@ module Prism
|
|
10975
12025
|
def type
|
10976
12026
|
:parentheses_node
|
10977
12027
|
end
|
12028
|
+
|
12029
|
+
# Similar to #type, this method returns a symbol that you can use for
|
12030
|
+
# splitting on the type of the node without having to do a long === chain.
|
12031
|
+
# Note that like #type, it will still be slower than using == for a single
|
12032
|
+
# class, but should be faster in a case statement or an array comparison.
|
12033
|
+
#
|
12034
|
+
# def self.type: () -> Symbol
|
12035
|
+
def self.type
|
12036
|
+
:parentheses_node
|
12037
|
+
end
|
10978
12038
|
end
|
10979
12039
|
|
10980
12040
|
# Represents the use of the `^` operator for pinning an expression in a
|
@@ -11085,6 +12145,16 @@ module Prism
|
|
11085
12145
|
def type
|
11086
12146
|
:pinned_expression_node
|
11087
12147
|
end
|
12148
|
+
|
12149
|
+
# Similar to #type, this method returns a symbol that you can use for
|
12150
|
+
# splitting on the type of the node without having to do a long === chain.
|
12151
|
+
# Note that like #type, it will still be slower than using == for a single
|
12152
|
+
# class, but should be faster in a case statement or an array comparison.
|
12153
|
+
#
|
12154
|
+
# def self.type: () -> Symbol
|
12155
|
+
def self.type
|
12156
|
+
:pinned_expression_node
|
12157
|
+
end
|
11088
12158
|
end
|
11089
12159
|
|
11090
12160
|
# Represents the use of the `^` operator for pinning a variable in a pattern
|
@@ -11173,6 +12243,16 @@ module Prism
|
|
11173
12243
|
def type
|
11174
12244
|
:pinned_variable_node
|
11175
12245
|
end
|
12246
|
+
|
12247
|
+
# Similar to #type, this method returns a symbol that you can use for
|
12248
|
+
# splitting on the type of the node without having to do a long === chain.
|
12249
|
+
# Note that like #type, it will still be slower than using == for a single
|
12250
|
+
# class, but should be faster in a case statement or an array comparison.
|
12251
|
+
#
|
12252
|
+
# def self.type: () -> Symbol
|
12253
|
+
def self.type
|
12254
|
+
:pinned_variable_node
|
12255
|
+
end
|
11176
12256
|
end
|
11177
12257
|
|
11178
12258
|
# Represents the use of the `END` keyword.
|
@@ -11288,6 +12368,16 @@ module Prism
|
|
11288
12368
|
def type
|
11289
12369
|
:post_execution_node
|
11290
12370
|
end
|
12371
|
+
|
12372
|
+
# Similar to #type, this method returns a symbol that you can use for
|
12373
|
+
# splitting on the type of the node without having to do a long === chain.
|
12374
|
+
# Note that like #type, it will still be slower than using == for a single
|
12375
|
+
# class, but should be faster in a case statement or an array comparison.
|
12376
|
+
#
|
12377
|
+
# def self.type: () -> Symbol
|
12378
|
+
def self.type
|
12379
|
+
:post_execution_node
|
12380
|
+
end
|
11291
12381
|
end
|
11292
12382
|
|
11293
12383
|
# Represents the use of the `BEGIN` keyword.
|
@@ -11403,6 +12493,16 @@ module Prism
|
|
11403
12493
|
def type
|
11404
12494
|
:pre_execution_node
|
11405
12495
|
end
|
12496
|
+
|
12497
|
+
# Similar to #type, this method returns a symbol that you can use for
|
12498
|
+
# splitting on the type of the node without having to do a long === chain.
|
12499
|
+
# Note that like #type, it will still be slower than using == for a single
|
12500
|
+
# class, but should be faster in a case statement or an array comparison.
|
12501
|
+
#
|
12502
|
+
# def self.type: () -> Symbol
|
12503
|
+
def self.type
|
12504
|
+
:pre_execution_node
|
12505
|
+
end
|
11406
12506
|
end
|
11407
12507
|
|
11408
12508
|
# The top level node of any parse tree.
|
@@ -11482,6 +12582,16 @@ module Prism
|
|
11482
12582
|
def type
|
11483
12583
|
:program_node
|
11484
12584
|
end
|
12585
|
+
|
12586
|
+
# Similar to #type, this method returns a symbol that you can use for
|
12587
|
+
# splitting on the type of the node without having to do a long === chain.
|
12588
|
+
# Note that like #type, it will still be slower than using == for a single
|
12589
|
+
# class, but should be faster in a case statement or an array comparison.
|
12590
|
+
#
|
12591
|
+
# def self.type: () -> Symbol
|
12592
|
+
def self.type
|
12593
|
+
:program_node
|
12594
|
+
end
|
11485
12595
|
end
|
11486
12596
|
|
11487
12597
|
# Represents the use of the `..` or `...` operators.
|
@@ -11602,6 +12712,16 @@ module Prism
|
|
11602
12712
|
def type
|
11603
12713
|
:range_node
|
11604
12714
|
end
|
12715
|
+
|
12716
|
+
# Similar to #type, this method returns a symbol that you can use for
|
12717
|
+
# splitting on the type of the node without having to do a long === chain.
|
12718
|
+
# Note that like #type, it will still be slower than using == for a single
|
12719
|
+
# class, but should be faster in a case statement or an array comparison.
|
12720
|
+
#
|
12721
|
+
# def self.type: () -> Symbol
|
12722
|
+
def self.type
|
12723
|
+
:range_node
|
12724
|
+
end
|
11605
12725
|
end
|
11606
12726
|
|
11607
12727
|
# Represents a rational number literal.
|
@@ -11678,6 +12798,16 @@ module Prism
|
|
11678
12798
|
def type
|
11679
12799
|
:rational_node
|
11680
12800
|
end
|
12801
|
+
|
12802
|
+
# Similar to #type, this method returns a symbol that you can use for
|
12803
|
+
# splitting on the type of the node without having to do a long === chain.
|
12804
|
+
# Note that like #type, it will still be slower than using == for a single
|
12805
|
+
# class, but should be faster in a case statement or an array comparison.
|
12806
|
+
#
|
12807
|
+
# def self.type: () -> Symbol
|
12808
|
+
def self.type
|
12809
|
+
:rational_node
|
12810
|
+
end
|
11681
12811
|
end
|
11682
12812
|
|
11683
12813
|
# Represents the use of the `redo` keyword.
|
@@ -11747,6 +12877,16 @@ module Prism
|
|
11747
12877
|
def type
|
11748
12878
|
:redo_node
|
11749
12879
|
end
|
12880
|
+
|
12881
|
+
# Similar to #type, this method returns a symbol that you can use for
|
12882
|
+
# splitting on the type of the node without having to do a long === chain.
|
12883
|
+
# Note that like #type, it will still be slower than using == for a single
|
12884
|
+
# class, but should be faster in a case statement or an array comparison.
|
12885
|
+
#
|
12886
|
+
# def self.type: () -> Symbol
|
12887
|
+
def self.type
|
12888
|
+
:redo_node
|
12889
|
+
end
|
11750
12890
|
end
|
11751
12891
|
|
11752
12892
|
# Represents a regular expression literal with no interpolation.
|
@@ -11849,6 +12989,11 @@ module Prism
|
|
11849
12989
|
flags.anybits?(RegularExpressionFlags::MULTI_LINE)
|
11850
12990
|
end
|
11851
12991
|
|
12992
|
+
# def once?: () -> bool
|
12993
|
+
def once?
|
12994
|
+
flags.anybits?(RegularExpressionFlags::ONCE)
|
12995
|
+
end
|
12996
|
+
|
11852
12997
|
# def euc_jp?: () -> bool
|
11853
12998
|
def euc_jp?
|
11854
12999
|
flags.anybits?(RegularExpressionFlags::EUC_JP)
|
@@ -11869,18 +13014,13 @@ module Prism
|
|
11869
13014
|
flags.anybits?(RegularExpressionFlags::UTF_8)
|
11870
13015
|
end
|
11871
13016
|
|
11872
|
-
# def once?: () -> bool
|
11873
|
-
def once?
|
11874
|
-
flags.anybits?(RegularExpressionFlags::ONCE)
|
11875
|
-
end
|
11876
|
-
|
11877
13017
|
def inspect(inspector = NodeInspector.new)
|
11878
13018
|
inspector << inspector.header(self)
|
11879
13019
|
inspector << "├── opening_loc: #{inspector.location(opening_loc)}\n"
|
11880
13020
|
inspector << "├── content_loc: #{inspector.location(content_loc)}\n"
|
11881
13021
|
inspector << "├── closing_loc: #{inspector.location(closing_loc)}\n"
|
11882
13022
|
inspector << "├── unescaped: #{unescaped.inspect}\n"
|
11883
|
-
flags = [("ignore_case" if ignore_case?), ("extended" if extended?), ("multi_line" if multi_line?), ("
|
13023
|
+
flags = [("ignore_case" if ignore_case?), ("extended" if extended?), ("multi_line" if multi_line?), ("once" if once?), ("euc_jp" if euc_jp?), ("ascii_8bit" if ascii_8bit?), ("windows_31j" if windows_31j?), ("utf_8" if utf_8?)].compact
|
11884
13024
|
inspector << "└── flags: #{flags.empty? ? "∅" : flags.join(", ")}\n"
|
11885
13025
|
inspector.to_str
|
11886
13026
|
end
|
@@ -11902,6 +13042,16 @@ module Prism
|
|
11902
13042
|
def type
|
11903
13043
|
:regular_expression_node
|
11904
13044
|
end
|
13045
|
+
|
13046
|
+
# Similar to #type, this method returns a symbol that you can use for
|
13047
|
+
# splitting on the type of the node without having to do a long === chain.
|
13048
|
+
# Note that like #type, it will still be slower than using == for a single
|
13049
|
+
# class, but should be faster in a case statement or an array comparison.
|
13050
|
+
#
|
13051
|
+
# def self.type: () -> Symbol
|
13052
|
+
def self.type
|
13053
|
+
:regular_expression_node
|
13054
|
+
end
|
11905
13055
|
end
|
11906
13056
|
|
11907
13057
|
# Represents a destructured required parameter node.
|
@@ -12000,6 +13150,16 @@ module Prism
|
|
12000
13150
|
def type
|
12001
13151
|
:required_destructured_parameter_node
|
12002
13152
|
end
|
13153
|
+
|
13154
|
+
# Similar to #type, this method returns a symbol that you can use for
|
13155
|
+
# splitting on the type of the node without having to do a long === chain.
|
13156
|
+
# Note that like #type, it will still be slower than using == for a single
|
13157
|
+
# class, but should be faster in a case statement or an array comparison.
|
13158
|
+
#
|
13159
|
+
# def self.type: () -> Symbol
|
13160
|
+
def self.type
|
13161
|
+
:required_destructured_parameter_node
|
13162
|
+
end
|
12003
13163
|
end
|
12004
13164
|
|
12005
13165
|
# Represents a required parameter to a method, block, or lambda definition.
|
@@ -12076,6 +13236,16 @@ module Prism
|
|
12076
13236
|
def type
|
12077
13237
|
:required_parameter_node
|
12078
13238
|
end
|
13239
|
+
|
13240
|
+
# Similar to #type, this method returns a symbol that you can use for
|
13241
|
+
# splitting on the type of the node without having to do a long === chain.
|
13242
|
+
# Note that like #type, it will still be slower than using == for a single
|
13243
|
+
# class, but should be faster in a case statement or an array comparison.
|
13244
|
+
#
|
13245
|
+
# def self.type: () -> Symbol
|
13246
|
+
def self.type
|
13247
|
+
:required_parameter_node
|
13248
|
+
end
|
12079
13249
|
end
|
12080
13250
|
|
12081
13251
|
# Represents an expression modified with a rescue.
|
@@ -12174,6 +13344,16 @@ module Prism
|
|
12174
13344
|
def type
|
12175
13345
|
:rescue_modifier_node
|
12176
13346
|
end
|
13347
|
+
|
13348
|
+
# Similar to #type, this method returns a symbol that you can use for
|
13349
|
+
# splitting on the type of the node without having to do a long === chain.
|
13350
|
+
# Note that like #type, it will still be slower than using == for a single
|
13351
|
+
# class, but should be faster in a case statement or an array comparison.
|
13352
|
+
#
|
13353
|
+
# def self.type: () -> Symbol
|
13354
|
+
def self.type
|
13355
|
+
:rescue_modifier_node
|
13356
|
+
end
|
12177
13357
|
end
|
12178
13358
|
|
12179
13359
|
# Represents a rescue statement.
|
@@ -12315,6 +13495,16 @@ module Prism
|
|
12315
13495
|
def type
|
12316
13496
|
:rescue_node
|
12317
13497
|
end
|
13498
|
+
|
13499
|
+
# Similar to #type, this method returns a symbol that you can use for
|
13500
|
+
# splitting on the type of the node without having to do a long === chain.
|
13501
|
+
# Note that like #type, it will still be slower than using == for a single
|
13502
|
+
# class, but should be faster in a case statement or an array comparison.
|
13503
|
+
#
|
13504
|
+
# def self.type: () -> Symbol
|
13505
|
+
def self.type
|
13506
|
+
:rescue_node
|
13507
|
+
end
|
12318
13508
|
end
|
12319
13509
|
|
12320
13510
|
# Represents a rest parameter to a method, block, or lambda definition.
|
@@ -12408,6 +13598,16 @@ module Prism
|
|
12408
13598
|
def type
|
12409
13599
|
:rest_parameter_node
|
12410
13600
|
end
|
13601
|
+
|
13602
|
+
# Similar to #type, this method returns a symbol that you can use for
|
13603
|
+
# splitting on the type of the node without having to do a long === chain.
|
13604
|
+
# Note that like #type, it will still be slower than using == for a single
|
13605
|
+
# class, but should be faster in a case statement or an array comparison.
|
13606
|
+
#
|
13607
|
+
# def self.type: () -> Symbol
|
13608
|
+
def self.type
|
13609
|
+
:rest_parameter_node
|
13610
|
+
end
|
12411
13611
|
end
|
12412
13612
|
|
12413
13613
|
# Represents the use of the `retry` keyword.
|
@@ -12477,6 +13677,16 @@ module Prism
|
|
12477
13677
|
def type
|
12478
13678
|
:retry_node
|
12479
13679
|
end
|
13680
|
+
|
13681
|
+
# Similar to #type, this method returns a symbol that you can use for
|
13682
|
+
# splitting on the type of the node without having to do a long === chain.
|
13683
|
+
# Note that like #type, it will still be slower than using == for a single
|
13684
|
+
# class, but should be faster in a case statement or an array comparison.
|
13685
|
+
#
|
13686
|
+
# def self.type: () -> Symbol
|
13687
|
+
def self.type
|
13688
|
+
:retry_node
|
13689
|
+
end
|
12480
13690
|
end
|
12481
13691
|
|
12482
13692
|
# Represents the use of the `return` keyword.
|
@@ -12570,6 +13780,16 @@ module Prism
|
|
12570
13780
|
def type
|
12571
13781
|
:return_node
|
12572
13782
|
end
|
13783
|
+
|
13784
|
+
# Similar to #type, this method returns a symbol that you can use for
|
13785
|
+
# splitting on the type of the node without having to do a long === chain.
|
13786
|
+
# Note that like #type, it will still be slower than using == for a single
|
13787
|
+
# class, but should be faster in a case statement or an array comparison.
|
13788
|
+
#
|
13789
|
+
# def self.type: () -> Symbol
|
13790
|
+
def self.type
|
13791
|
+
:return_node
|
13792
|
+
end
|
12573
13793
|
end
|
12574
13794
|
|
12575
13795
|
# Represents the `self` keyword.
|
@@ -12639,6 +13859,16 @@ module Prism
|
|
12639
13859
|
def type
|
12640
13860
|
:self_node
|
12641
13861
|
end
|
13862
|
+
|
13863
|
+
# Similar to #type, this method returns a symbol that you can use for
|
13864
|
+
# splitting on the type of the node without having to do a long === chain.
|
13865
|
+
# Note that like #type, it will still be slower than using == for a single
|
13866
|
+
# class, but should be faster in a case statement or an array comparison.
|
13867
|
+
#
|
13868
|
+
# def self.type: () -> Symbol
|
13869
|
+
def self.type
|
13870
|
+
:self_node
|
13871
|
+
end
|
12642
13872
|
end
|
12643
13873
|
|
12644
13874
|
# Represents a singleton class declaration involving the `class` keyword.
|
@@ -12768,6 +13998,16 @@ module Prism
|
|
12768
13998
|
def type
|
12769
13999
|
:singleton_class_node
|
12770
14000
|
end
|
14001
|
+
|
14002
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14003
|
+
# splitting on the type of the node without having to do a long === chain.
|
14004
|
+
# Note that like #type, it will still be slower than using == for a single
|
14005
|
+
# class, but should be faster in a case statement or an array comparison.
|
14006
|
+
#
|
14007
|
+
# def self.type: () -> Symbol
|
14008
|
+
def self.type
|
14009
|
+
:singleton_class_node
|
14010
|
+
end
|
12771
14011
|
end
|
12772
14012
|
|
12773
14013
|
# Represents the use of the `__ENCODING__` keyword.
|
@@ -12837,6 +14077,16 @@ module Prism
|
|
12837
14077
|
def type
|
12838
14078
|
:source_encoding_node
|
12839
14079
|
end
|
14080
|
+
|
14081
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14082
|
+
# splitting on the type of the node without having to do a long === chain.
|
14083
|
+
# Note that like #type, it will still be slower than using == for a single
|
14084
|
+
# class, but should be faster in a case statement or an array comparison.
|
14085
|
+
#
|
14086
|
+
# def self.type: () -> Symbol
|
14087
|
+
def self.type
|
14088
|
+
:source_encoding_node
|
14089
|
+
end
|
12840
14090
|
end
|
12841
14091
|
|
12842
14092
|
# Represents the use of the `__FILE__` keyword.
|
@@ -12912,6 +14162,16 @@ module Prism
|
|
12912
14162
|
def type
|
12913
14163
|
:source_file_node
|
12914
14164
|
end
|
14165
|
+
|
14166
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14167
|
+
# splitting on the type of the node without having to do a long === chain.
|
14168
|
+
# Note that like #type, it will still be slower than using == for a single
|
14169
|
+
# class, but should be faster in a case statement or an array comparison.
|
14170
|
+
#
|
14171
|
+
# def self.type: () -> Symbol
|
14172
|
+
def self.type
|
14173
|
+
:source_file_node
|
14174
|
+
end
|
12915
14175
|
end
|
12916
14176
|
|
12917
14177
|
# Represents the use of the `__LINE__` keyword.
|
@@ -12981,6 +14241,16 @@ module Prism
|
|
12981
14241
|
def type
|
12982
14242
|
:source_line_node
|
12983
14243
|
end
|
14244
|
+
|
14245
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14246
|
+
# splitting on the type of the node without having to do a long === chain.
|
14247
|
+
# Note that like #type, it will still be slower than using == for a single
|
14248
|
+
# class, but should be faster in a case statement or an array comparison.
|
14249
|
+
#
|
14250
|
+
# def self.type: () -> Symbol
|
14251
|
+
def self.type
|
14252
|
+
:source_line_node
|
14253
|
+
end
|
12984
14254
|
end
|
12985
14255
|
|
12986
14256
|
# Represents the use of the splat operator.
|
@@ -13074,6 +14344,16 @@ module Prism
|
|
13074
14344
|
def type
|
13075
14345
|
:splat_node
|
13076
14346
|
end
|
14347
|
+
|
14348
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14349
|
+
# splitting on the type of the node without having to do a long === chain.
|
14350
|
+
# Note that like #type, it will still be slower than using == for a single
|
14351
|
+
# class, but should be faster in a case statement or an array comparison.
|
14352
|
+
#
|
14353
|
+
# def self.type: () -> Symbol
|
14354
|
+
def self.type
|
14355
|
+
:splat_node
|
14356
|
+
end
|
13077
14357
|
end
|
13078
14358
|
|
13079
14359
|
# Represents a set of statements contained within some scope.
|
@@ -13149,6 +14429,16 @@ module Prism
|
|
13149
14429
|
def type
|
13150
14430
|
:statements_node
|
13151
14431
|
end
|
14432
|
+
|
14433
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14434
|
+
# splitting on the type of the node without having to do a long === chain.
|
14435
|
+
# Note that like #type, it will still be slower than using == for a single
|
14436
|
+
# class, but should be faster in a case statement or an array comparison.
|
14437
|
+
#
|
14438
|
+
# def self.type: () -> Symbol
|
14439
|
+
def self.type
|
14440
|
+
:statements_node
|
14441
|
+
end
|
13152
14442
|
end
|
13153
14443
|
|
13154
14444
|
# Represents the use of compile-time string concatenation.
|
@@ -13232,6 +14522,16 @@ module Prism
|
|
13232
14522
|
def type
|
13233
14523
|
:string_concat_node
|
13234
14524
|
end
|
14525
|
+
|
14526
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14527
|
+
# splitting on the type of the node without having to do a long === chain.
|
14528
|
+
# Note that like #type, it will still be slower than using == for a single
|
14529
|
+
# class, but should be faster in a case statement or an array comparison.
|
14530
|
+
#
|
14531
|
+
# def self.type: () -> Symbol
|
14532
|
+
def self.type
|
14533
|
+
:string_concat_node
|
14534
|
+
end
|
13235
14535
|
end
|
13236
14536
|
|
13237
14537
|
# Represents a string literal, a string contained within a `%w` list, or
|
@@ -13359,6 +14659,16 @@ module Prism
|
|
13359
14659
|
def type
|
13360
14660
|
:string_node
|
13361
14661
|
end
|
14662
|
+
|
14663
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14664
|
+
# splitting on the type of the node without having to do a long === chain.
|
14665
|
+
# Note that like #type, it will still be slower than using == for a single
|
14666
|
+
# class, but should be faster in a case statement or an array comparison.
|
14667
|
+
#
|
14668
|
+
# def self.type: () -> Symbol
|
14669
|
+
def self.type
|
14670
|
+
:string_node
|
14671
|
+
end
|
13362
14672
|
end
|
13363
14673
|
|
13364
14674
|
# Represents the use of the `super` keyword with parentheses or arguments.
|
@@ -13489,6 +14799,16 @@ module Prism
|
|
13489
14799
|
def type
|
13490
14800
|
:super_node
|
13491
14801
|
end
|
14802
|
+
|
14803
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14804
|
+
# splitting on the type of the node without having to do a long === chain.
|
14805
|
+
# Note that like #type, it will still be slower than using == for a single
|
14806
|
+
# class, but should be faster in a case statement or an array comparison.
|
14807
|
+
#
|
14808
|
+
# def self.type: () -> Symbol
|
14809
|
+
def self.type
|
14810
|
+
:super_node
|
14811
|
+
end
|
13492
14812
|
end
|
13493
14813
|
|
13494
14814
|
# Represents a symbol literal or a symbol contained within a `%i` list.
|
@@ -13600,6 +14920,16 @@ module Prism
|
|
13600
14920
|
def type
|
13601
14921
|
:symbol_node
|
13602
14922
|
end
|
14923
|
+
|
14924
|
+
# Similar to #type, this method returns a symbol that you can use for
|
14925
|
+
# splitting on the type of the node without having to do a long === chain.
|
14926
|
+
# Note that like #type, it will still be slower than using == for a single
|
14927
|
+
# class, but should be faster in a case statement or an array comparison.
|
14928
|
+
#
|
14929
|
+
# def self.type: () -> Symbol
|
14930
|
+
def self.type
|
14931
|
+
:symbol_node
|
14932
|
+
end
|
13603
14933
|
end
|
13604
14934
|
|
13605
14935
|
# Represents the use of the literal `true` keyword.
|
@@ -13669,6 +14999,16 @@ module Prism
|
|
13669
14999
|
def type
|
13670
15000
|
:true_node
|
13671
15001
|
end
|
15002
|
+
|
15003
|
+
# Similar to #type, this method returns a symbol that you can use for
|
15004
|
+
# splitting on the type of the node without having to do a long === chain.
|
15005
|
+
# Note that like #type, it will still be slower than using == for a single
|
15006
|
+
# class, but should be faster in a case statement or an array comparison.
|
15007
|
+
#
|
15008
|
+
# def self.type: () -> Symbol
|
15009
|
+
def self.type
|
15010
|
+
:true_node
|
15011
|
+
end
|
13672
15012
|
end
|
13673
15013
|
|
13674
15014
|
# Represents the use of the `undef` keyword.
|
@@ -13755,6 +15095,16 @@ module Prism
|
|
13755
15095
|
def type
|
13756
15096
|
:undef_node
|
13757
15097
|
end
|
15098
|
+
|
15099
|
+
# Similar to #type, this method returns a symbol that you can use for
|
15100
|
+
# splitting on the type of the node without having to do a long === chain.
|
15101
|
+
# Note that like #type, it will still be slower than using == for a single
|
15102
|
+
# class, but should be faster in a case statement or an array comparison.
|
15103
|
+
#
|
15104
|
+
# def self.type: () -> Symbol
|
15105
|
+
def self.type
|
15106
|
+
:undef_node
|
15107
|
+
end
|
13758
15108
|
end
|
13759
15109
|
|
13760
15110
|
# Represents the use of the `unless` keyword, either in the block form or the modifier form.
|
@@ -13886,6 +15236,16 @@ module Prism
|
|
13886
15236
|
def type
|
13887
15237
|
:unless_node
|
13888
15238
|
end
|
15239
|
+
|
15240
|
+
# Similar to #type, this method returns a symbol that you can use for
|
15241
|
+
# splitting on the type of the node without having to do a long === chain.
|
15242
|
+
# Note that like #type, it will still be slower than using == for a single
|
15243
|
+
# class, but should be faster in a case statement or an array comparison.
|
15244
|
+
#
|
15245
|
+
# def self.type: () -> Symbol
|
15246
|
+
def self.type
|
15247
|
+
:unless_node
|
15248
|
+
end
|
13889
15249
|
end
|
13890
15250
|
|
13891
15251
|
# Represents the use of the `until` keyword, either in the block form or the modifier form.
|
@@ -14017,6 +15377,16 @@ module Prism
|
|
14017
15377
|
def type
|
14018
15378
|
:until_node
|
14019
15379
|
end
|
15380
|
+
|
15381
|
+
# Similar to #type, this method returns a symbol that you can use for
|
15382
|
+
# splitting on the type of the node without having to do a long === chain.
|
15383
|
+
# Note that like #type, it will still be slower than using == for a single
|
15384
|
+
# class, but should be faster in a case statement or an array comparison.
|
15385
|
+
#
|
15386
|
+
# def self.type: () -> Symbol
|
15387
|
+
def self.type
|
15388
|
+
:until_node
|
15389
|
+
end
|
14020
15390
|
end
|
14021
15391
|
|
14022
15392
|
# Represents the use of the `when` keyword within a case statement.
|
@@ -14119,6 +15489,16 @@ module Prism
|
|
14119
15489
|
def type
|
14120
15490
|
:when_node
|
14121
15491
|
end
|
15492
|
+
|
15493
|
+
# Similar to #type, this method returns a symbol that you can use for
|
15494
|
+
# splitting on the type of the node without having to do a long === chain.
|
15495
|
+
# Note that like #type, it will still be slower than using == for a single
|
15496
|
+
# class, but should be faster in a case statement or an array comparison.
|
15497
|
+
#
|
15498
|
+
# def self.type: () -> Symbol
|
15499
|
+
def self.type
|
15500
|
+
:when_node
|
15501
|
+
end
|
14122
15502
|
end
|
14123
15503
|
|
14124
15504
|
# Represents the use of the `while` keyword, either in the block form or the modifier form.
|
@@ -14250,6 +15630,16 @@ module Prism
|
|
14250
15630
|
def type
|
14251
15631
|
:while_node
|
14252
15632
|
end
|
15633
|
+
|
15634
|
+
# Similar to #type, this method returns a symbol that you can use for
|
15635
|
+
# splitting on the type of the node without having to do a long === chain.
|
15636
|
+
# Note that like #type, it will still be slower than using == for a single
|
15637
|
+
# class, but should be faster in a case statement or an array comparison.
|
15638
|
+
#
|
15639
|
+
# def self.type: () -> Symbol
|
15640
|
+
def self.type
|
15641
|
+
:while_node
|
15642
|
+
end
|
14253
15643
|
end
|
14254
15644
|
|
14255
15645
|
# Represents an xstring literal with no interpolation.
|
@@ -14358,6 +15748,16 @@ module Prism
|
|
14358
15748
|
def type
|
14359
15749
|
:x_string_node
|
14360
15750
|
end
|
15751
|
+
|
15752
|
+
# Similar to #type, this method returns a symbol that you can use for
|
15753
|
+
# splitting on the type of the node without having to do a long === chain.
|
15754
|
+
# Note that like #type, it will still be slower than using == for a single
|
15755
|
+
# class, but should be faster in a case statement or an array comparison.
|
15756
|
+
#
|
15757
|
+
# def self.type: () -> Symbol
|
15758
|
+
def self.type
|
15759
|
+
:x_string_node
|
15760
|
+
end
|
14361
15761
|
end
|
14362
15762
|
|
14363
15763
|
# Represents the use of the `yield` keyword.
|
@@ -14473,6 +15873,16 @@ module Prism
|
|
14473
15873
|
def type
|
14474
15874
|
:yield_node
|
14475
15875
|
end
|
15876
|
+
|
15877
|
+
# Similar to #type, this method returns a symbol that you can use for
|
15878
|
+
# splitting on the type of the node without having to do a long === chain.
|
15879
|
+
# Note that like #type, it will still be slower than using == for a single
|
15880
|
+
# class, but should be faster in a case statement or an array comparison.
|
15881
|
+
#
|
15882
|
+
# def self.type: () -> Symbol
|
15883
|
+
def self.type
|
15884
|
+
:yield_node
|
15885
|
+
end
|
14476
15886
|
end
|
14477
15887
|
|
14478
15888
|
module CallNodeFlags
|
@@ -14517,24 +15927,24 @@ module Prism
|
|
14517
15927
|
# m - allows $ to match the end of lines within strings
|
14518
15928
|
MULTI_LINE = 1 << 2
|
14519
15929
|
|
15930
|
+
# o - only interpolates values into the regular expression once
|
15931
|
+
ONCE = 1 << 3
|
15932
|
+
|
14520
15933
|
# e - forces the EUC-JP encoding
|
14521
|
-
EUC_JP = 1 <<
|
15934
|
+
EUC_JP = 1 << 4
|
14522
15935
|
|
14523
15936
|
# n - forces the ASCII-8BIT encoding
|
14524
|
-
ASCII_8BIT = 1 <<
|
15937
|
+
ASCII_8BIT = 1 << 5
|
14525
15938
|
|
14526
15939
|
# s - forces the Windows-31J encoding
|
14527
|
-
WINDOWS_31J = 1 <<
|
15940
|
+
WINDOWS_31J = 1 << 6
|
14528
15941
|
|
14529
15942
|
# u - forces the UTF-8 encoding
|
14530
|
-
UTF_8 = 1 <<
|
14531
|
-
|
14532
|
-
# o - only interpolates values into the regular expression once
|
14533
|
-
ONCE = 1 << 7
|
15943
|
+
UTF_8 = 1 << 7
|
14534
15944
|
end
|
14535
15945
|
|
14536
15946
|
module StringFlags
|
14537
|
-
# frozen by virtue of a frozen_string_literal comment
|
15947
|
+
# frozen by virtue of a `frozen_string_literal` comment
|
14538
15948
|
FROZEN = 1 << 0
|
14539
15949
|
end
|
14540
15950
|
end
|