prism 0.29.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +115 -1
  3. data/CONTRIBUTING.md +0 -4
  4. data/Makefile +1 -1
  5. data/README.md +4 -0
  6. data/config.yml +920 -148
  7. data/docs/build_system.md +8 -11
  8. data/docs/fuzzing.md +1 -1
  9. data/docs/parsing_rules.md +4 -1
  10. data/docs/relocation.md +34 -0
  11. data/docs/ripper_translation.md +22 -0
  12. data/docs/serialization.md +3 -0
  13. data/ext/prism/api_node.c +2863 -2079
  14. data/ext/prism/extconf.rb +14 -37
  15. data/ext/prism/extension.c +241 -391
  16. data/ext/prism/extension.h +2 -2
  17. data/include/prism/ast.h +2156 -453
  18. data/include/prism/defines.h +58 -7
  19. data/include/prism/diagnostic.h +24 -6
  20. data/include/prism/node.h +0 -21
  21. data/include/prism/options.h +94 -3
  22. data/include/prism/parser.h +82 -40
  23. data/include/prism/regexp.h +18 -8
  24. data/include/prism/static_literals.h +3 -2
  25. data/include/prism/util/pm_char.h +1 -2
  26. data/include/prism/util/pm_constant_pool.h +0 -8
  27. data/include/prism/util/pm_integer.h +22 -15
  28. data/include/prism/util/pm_newline_list.h +11 -0
  29. data/include/prism/util/pm_string.h +28 -12
  30. data/include/prism/version.h +3 -3
  31. data/include/prism.h +47 -11
  32. data/lib/prism/compiler.rb +3 -0
  33. data/lib/prism/desugar_compiler.rb +111 -74
  34. data/lib/prism/dispatcher.rb +16 -1
  35. data/lib/prism/dot_visitor.rb +55 -34
  36. data/lib/prism/dsl.rb +660 -468
  37. data/lib/prism/ffi.rb +113 -8
  38. data/lib/prism/inspect_visitor.rb +296 -64
  39. data/lib/prism/lex_compat.rb +1 -1
  40. data/lib/prism/mutation_compiler.rb +11 -6
  41. data/lib/prism/node.rb +4262 -5023
  42. data/lib/prism/node_ext.rb +91 -14
  43. data/lib/prism/parse_result/comments.rb +0 -7
  44. data/lib/prism/parse_result/errors.rb +65 -0
  45. data/lib/prism/parse_result/newlines.rb +101 -11
  46. data/lib/prism/parse_result.rb +183 -6
  47. data/lib/prism/reflection.rb +12 -10
  48. data/lib/prism/relocation.rb +504 -0
  49. data/lib/prism/serialize.rb +496 -609
  50. data/lib/prism/string_query.rb +30 -0
  51. data/lib/prism/translation/parser/compiler.rb +185 -155
  52. data/lib/prism/translation/parser/lexer.rb +26 -4
  53. data/lib/prism/translation/parser.rb +9 -4
  54. data/lib/prism/translation/ripper.rb +23 -25
  55. data/lib/prism/translation/ruby_parser.rb +86 -17
  56. data/lib/prism/visitor.rb +3 -0
  57. data/lib/prism.rb +6 -8
  58. data/prism.gemspec +9 -5
  59. data/rbi/prism/dsl.rbi +521 -0
  60. data/rbi/prism/node.rbi +1115 -1120
  61. data/rbi/prism/parse_result.rbi +29 -0
  62. data/rbi/prism/string_query.rbi +12 -0
  63. data/rbi/prism/visitor.rbi +3 -0
  64. data/rbi/prism.rbi +36 -30
  65. data/sig/prism/dsl.rbs +190 -303
  66. data/sig/prism/mutation_compiler.rbs +1 -0
  67. data/sig/prism/node.rbs +678 -632
  68. data/sig/prism/parse_result.rbs +22 -0
  69. data/sig/prism/relocation.rbs +185 -0
  70. data/sig/prism/string_query.rbs +11 -0
  71. data/sig/prism/visitor.rbs +1 -0
  72. data/sig/prism.rbs +103 -64
  73. data/src/diagnostic.c +64 -28
  74. data/src/node.c +502 -1739
  75. data/src/options.c +76 -27
  76. data/src/prettyprint.c +188 -112
  77. data/src/prism.c +3376 -2293
  78. data/src/regexp.c +208 -71
  79. data/src/serialize.c +182 -50
  80. data/src/static_literals.c +64 -85
  81. data/src/token_type.c +4 -4
  82. data/src/util/pm_char.c +1 -1
  83. data/src/util/pm_constant_pool.c +0 -8
  84. data/src/util/pm_integer.c +53 -25
  85. data/src/util/pm_newline_list.c +29 -0
  86. data/src/util/pm_string.c +131 -80
  87. data/src/util/pm_strpbrk.c +32 -6
  88. metadata +11 -7
  89. data/include/prism/util/pm_string_list.h +0 -44
  90. data/lib/prism/debug.rb +0 -249
  91. data/lib/prism/translation/parser/rubocop.rb +0 -73
  92. data/src/util/pm_string_list.c +0 -28
data/sig/prism/dsl.rbs CHANGED
@@ -4,459 +4,346 @@
4
4
 
5
5
  module Prism
6
6
  module DSL
7
- private
7
+ def source: (String string) -> Source
8
+
9
+ def location: (?source: Source, ?start_offset: Integer, ?length: Integer) -> Location
10
+
11
+ def alias_global_variable_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?new_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode, ?old_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | SymbolNode | MissingNode, ?keyword_loc: Location) -> AliasGlobalVariableNode
12
+
13
+ def alias_method_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?new_name: SymbolNode | InterpolatedSymbolNode, ?old_name: SymbolNode | InterpolatedSymbolNode | GlobalVariableReadNode | MissingNode, ?keyword_loc: Location) -> AliasMethodNode
14
+
15
+ def alternation_pattern_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> AlternationPatternNode
16
+
17
+ def and_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> AndNode
18
+
19
+ def arguments_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: Array[Prism::node]) -> ArgumentsNode
20
+
21
+ def array_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?elements: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?) -> ArrayNode
22
+
23
+ def array_pattern_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?constant: ConstantReadNode | ConstantPathNode | nil, ?requireds: Array[Prism::node], ?rest: Prism::node?, ?posts: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?) -> ArrayPatternNode
24
+
25
+ def assoc_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?key: Prism::node, ?value: Prism::node, ?operator_loc: Location?) -> AssocNode
26
+
27
+ def assoc_splat_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node?, ?operator_loc: Location) -> AssocSplatNode
8
28
 
9
- # Create a new Location object
10
- def Location: (?Source source, ?Integer start_offset, ?Integer length) -> Location
29
+ def back_reference_read_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> BackReferenceReadNode
11
30
 
12
- # Create a new AliasGlobalVariableNode node
13
- def AliasGlobalVariableNode: (Prism::node new_name, Prism::node old_name, Location keyword_loc, ?Source source, ?Location location) -> AliasGlobalVariableNode
31
+ def begin_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?begin_keyword_loc: Location?, ?statements: StatementsNode?, ?rescue_clause: RescueNode?, ?else_clause: ElseNode?, ?ensure_clause: EnsureNode?, ?end_keyword_loc: Location?) -> BeginNode
14
32
 
15
- # Create a new AliasMethodNode node
16
- def AliasMethodNode: (Prism::node new_name, Prism::node old_name, Location keyword_loc, ?Source source, ?Location location) -> AliasMethodNode
33
+ def block_argument_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node?, ?operator_loc: Location) -> BlockArgumentNode
17
34
 
18
- # Create a new AlternationPatternNode node
19
- def AlternationPatternNode: (Prism::node left, Prism::node right, Location operator_loc, ?Source source, ?Location location) -> AlternationPatternNode
35
+ def block_local_variable_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> BlockLocalVariableNode
20
36
 
21
- # Create a new AndNode node
22
- def AndNode: (Prism::node left, Prism::node right, Location operator_loc, ?Source source, ?Location location) -> AndNode
37
+ def block_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil, ?body: StatementsNode | BeginNode | nil, ?opening_loc: Location, ?closing_loc: Location) -> BlockNode
23
38
 
24
- # Create a new ArgumentsNode node
25
- def ArgumentsNode: (Integer flags, Array[Prism::node] arguments, ?Source source, ?Location location) -> ArgumentsNode
39
+ def block_parameter_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> BlockParameterNode
26
40
 
27
- # Create a new ArrayNode node
28
- def ArrayNode: (Integer flags, Array[Prism::node] elements, Location? opening_loc, Location? closing_loc, ?Source source, ?Location location) -> ArrayNode
41
+ def block_parameters_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?parameters: ParametersNode?, ?locals: Array[BlockLocalVariableNode], ?opening_loc: Location?, ?closing_loc: Location?) -> BlockParametersNode
29
42
 
30
- # Create a new ArrayPatternNode node
31
- def ArrayPatternNode: (Prism::node? constant, Array[Prism::node] requireds, Prism::node? rest, Array[Prism::node] posts, Location? opening_loc, Location? closing_loc, ?Source source, ?Location location) -> ArrayPatternNode
43
+ def break_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: ArgumentsNode?, ?keyword_loc: Location) -> BreakNode
32
44
 
33
- # Create a new AssocNode node
34
- def AssocNode: (Prism::node key, Prism::node value, Location? operator_loc, ?Source source, ?Location location) -> AssocNode
45
+ def call_and_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node) -> CallAndWriteNode
35
46
 
36
- # Create a new AssocSplatNode node
37
- def AssocSplatNode: (Prism::node? value, Location operator_loc, ?Source source, ?Location location) -> AssocSplatNode
47
+ def call_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?name: Symbol, ?message_loc: Location?, ?opening_loc: Location?, ?arguments: ArgumentsNode?, ?closing_loc: Location?, ?block: BlockNode | BlockArgumentNode | nil) -> CallNode
38
48
 
39
- # Create a new BackReferenceReadNode node
40
- def BackReferenceReadNode: (Symbol name, ?Source source, ?Location location) -> BackReferenceReadNode
49
+ def call_operator_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?binary_operator: Symbol, ?binary_operator_loc: Location, ?value: Prism::node) -> CallOperatorWriteNode
41
50
 
42
- # Create a new BeginNode node
43
- def BeginNode: (Location? begin_keyword_loc, StatementsNode? statements, RescueNode? rescue_clause, ElseNode? else_clause, EnsureNode? ensure_clause, Location? end_keyword_loc, ?Source source, ?Location location) -> BeginNode
51
+ def call_or_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node) -> CallOrWriteNode
44
52
 
45
- # Create a new BlockArgumentNode node
46
- def BlockArgumentNode: (Prism::node? expression, Location operator_loc, ?Source source, ?Location location) -> BlockArgumentNode
53
+ def call_target_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?call_operator_loc: Location, ?name: Symbol, ?message_loc: Location) -> CallTargetNode
47
54
 
48
- # Create a new BlockLocalVariableNode node
49
- def BlockLocalVariableNode: (Integer flags, Symbol name, ?Source source, ?Location location) -> BlockLocalVariableNode
55
+ def capture_pattern_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?target: LocalVariableTargetNode, ?operator_loc: Location) -> CapturePatternNode
50
56
 
51
- # Create a new BlockNode node
52
- def BlockNode: (Array[Symbol] locals, Prism::node? parameters, Prism::node? body, Location opening_loc, Location closing_loc, ?Source source, ?Location location) -> BlockNode
57
+ def case_match_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?predicate: Prism::node?, ?conditions: Array[InNode], ?else_clause: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location) -> CaseMatchNode
53
58
 
54
- # Create a new BlockParameterNode node
55
- def BlockParameterNode: (Integer flags, Symbol? name, Location? name_loc, Location operator_loc, ?Source source, ?Location location) -> BlockParameterNode
59
+ def case_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?predicate: Prism::node?, ?conditions: Array[WhenNode], ?else_clause: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location) -> CaseNode
56
60
 
57
- # Create a new BlockParametersNode node
58
- def BlockParametersNode: (ParametersNode? parameters, Array[BlockLocalVariableNode] locals, Location? opening_loc, Location? closing_loc, ?Source source, ?Location location) -> BlockParametersNode
61
+ def class_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?class_keyword_loc: Location, ?constant_path: ConstantReadNode | ConstantPathNode | CallNode, ?inheritance_operator_loc: Location?, ?superclass: Prism::node?, ?body: StatementsNode | BeginNode | nil, ?end_keyword_loc: Location, ?name: Symbol) -> ClassNode
59
62
 
60
- # Create a new BreakNode node
61
- def BreakNode: (ArgumentsNode? arguments, Location keyword_loc, ?Source source, ?Location location) -> BreakNode
63
+ def class_variable_and_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ClassVariableAndWriteNode
62
64
 
63
- # Create a new CallAndWriteNode node
64
- def CallAndWriteNode: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> CallAndWriteNode
65
+ def class_variable_operator_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ClassVariableOperatorWriteNode
65
66
 
66
- # Create a new CallNode node
67
- def CallNode: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Symbol name, Location? message_loc, Location? opening_loc, ArgumentsNode? arguments, Location? closing_loc, Prism::node? block, ?Source source, ?Location location) -> CallNode
67
+ def class_variable_or_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ClassVariableOrWriteNode
68
68
 
69
- # Create a new CallOperatorWriteNode node
70
- def CallOperatorWriteNode: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Symbol binary_operator, Location binary_operator_loc, Prism::node value, ?Source source, ?Location location) -> CallOperatorWriteNode
69
+ def class_variable_read_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ClassVariableReadNode
71
70
 
72
- # Create a new CallOrWriteNode node
73
- def CallOrWriteNode: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> CallOrWriteNode
71
+ def class_variable_target_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ClassVariableTargetNode
74
72
 
75
- # Create a new CallTargetNode node
76
- def CallTargetNode: (Integer flags, Prism::node receiver, Location call_operator_loc, Symbol name, Location message_loc, ?Source source, ?Location location) -> CallTargetNode
73
+ def class_variable_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> ClassVariableWriteNode
77
74
 
78
- # Create a new CapturePatternNode node
79
- def CapturePatternNode: (Prism::node value, Prism::node target, Location operator_loc, ?Source source, ?Location location) -> CapturePatternNode
75
+ def constant_and_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ConstantAndWriteNode
80
76
 
81
- # Create a new CaseMatchNode node
82
- def CaseMatchNode: (Prism::node? predicate, Array[Prism::node] conditions, ElseNode? consequent, Location case_keyword_loc, Location end_keyword_loc, ?Source source, ?Location location) -> CaseMatchNode
77
+ def constant_operator_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ConstantOperatorWriteNode
83
78
 
84
- # Create a new CaseNode node
85
- def CaseNode: (Prism::node? predicate, Array[Prism::node] conditions, ElseNode? consequent, Location case_keyword_loc, Location end_keyword_loc, ?Source source, ?Location location) -> CaseNode
79
+ def constant_or_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ConstantOrWriteNode
86
80
 
87
- # Create a new ClassNode node
88
- def ClassNode: (Array[Symbol] locals, Location class_keyword_loc, Prism::node constant_path, Location? inheritance_operator_loc, Prism::node? superclass, Prism::node? body, Location end_keyword_loc, Symbol name, ?Source source, ?Location location) -> ClassNode
81
+ def constant_path_and_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathAndWriteNode
89
82
 
90
- # Create a new ClassVariableAndWriteNode node
91
- def ClassVariableAndWriteNode: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ClassVariableAndWriteNode
83
+ def constant_path_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location) -> ConstantPathNode
92
84
 
93
- # Create a new ClassVariableOperatorWriteNode node
94
- def ClassVariableOperatorWriteNode: (Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator, ?Source source, ?Location location) -> ClassVariableOperatorWriteNode
85
+ def constant_path_operator_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ConstantPathOperatorWriteNode
95
86
 
96
- # Create a new ClassVariableOrWriteNode node
97
- def ClassVariableOrWriteNode: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ClassVariableOrWriteNode
87
+ def constant_path_or_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathOrWriteNode
98
88
 
99
- # Create a new ClassVariableReadNode node
100
- def ClassVariableReadNode: (Symbol name, ?Source source, ?Location location) -> ClassVariableReadNode
89
+ def constant_path_target_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location) -> ConstantPathTargetNode
101
90
 
102
- # Create a new ClassVariableTargetNode node
103
- def ClassVariableTargetNode: (Symbol name, ?Source source, ?Location location) -> ClassVariableTargetNode
91
+ def constant_path_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathWriteNode
104
92
 
105
- # Create a new ClassVariableWriteNode node
106
- def ClassVariableWriteNode: (Symbol name, Location name_loc, Prism::node value, Location operator_loc, ?Source source, ?Location location) -> ClassVariableWriteNode
93
+ def constant_read_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ConstantReadNode
107
94
 
108
- # Create a new ConstantAndWriteNode node
109
- def ConstantAndWriteNode: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ConstantAndWriteNode
95
+ def constant_target_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ConstantTargetNode
110
96
 
111
- # Create a new ConstantOperatorWriteNode node
112
- def ConstantOperatorWriteNode: (Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator, ?Source source, ?Location location) -> ConstantOperatorWriteNode
97
+ def constant_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> ConstantWriteNode
113
98
 
114
- # Create a new ConstantOrWriteNode node
115
- def ConstantOrWriteNode: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ConstantOrWriteNode
99
+ def def_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?receiver: Prism::node?, ?parameters: ParametersNode?, ?body: StatementsNode | BeginNode | nil, ?locals: Array[Symbol], ?def_keyword_loc: Location, ?operator_loc: Location?, ?lparen_loc: Location?, ?rparen_loc: Location?, ?equal_loc: Location?, ?end_keyword_loc: Location?) -> DefNode
116
100
 
117
- # Create a new ConstantPathAndWriteNode node
118
- def ConstantPathAndWriteNode: (ConstantPathNode target, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ConstantPathAndWriteNode
101
+ def defined_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?lparen_loc: Location?, ?value: Prism::node, ?rparen_loc: Location?, ?keyword_loc: Location) -> DefinedNode
119
102
 
120
- # Create a new ConstantPathNode node
121
- def ConstantPathNode: (Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc, ?Source source, ?Location location) -> ConstantPathNode
103
+ def else_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?else_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location?) -> ElseNode
122
104
 
123
- # Create a new ConstantPathOperatorWriteNode node
124
- def ConstantPathOperatorWriteNode: (ConstantPathNode target, Location binary_operator_loc, Prism::node value, Symbol binary_operator, ?Source source, ?Location location) -> ConstantPathOperatorWriteNode
105
+ def embedded_statements_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?statements: StatementsNode?, ?closing_loc: Location) -> EmbeddedStatementsNode
125
106
 
126
- # Create a new ConstantPathOrWriteNode node
127
- def ConstantPathOrWriteNode: (ConstantPathNode target, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ConstantPathOrWriteNode
107
+ def embedded_variable_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?variable: InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode) -> EmbeddedVariableNode
128
108
 
129
- # Create a new ConstantPathTargetNode node
130
- def ConstantPathTargetNode: (Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc, ?Source source, ?Location location) -> ConstantPathTargetNode
109
+ def ensure_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?ensure_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location) -> EnsureNode
131
110
 
132
- # Create a new ConstantPathWriteNode node
133
- def ConstantPathWriteNode: (ConstantPathNode target, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ConstantPathWriteNode
111
+ def false_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> FalseNode
134
112
 
135
- # Create a new ConstantReadNode node
136
- def ConstantReadNode: (Symbol name, ?Source source, ?Location location) -> ConstantReadNode
113
+ def find_pattern_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?constant: ConstantReadNode | ConstantPathNode | nil, ?left: SplatNode, ?requireds: Array[Prism::node], ?right: SplatNode | MissingNode, ?opening_loc: Location?, ?closing_loc: Location?) -> FindPatternNode
137
114
 
138
- # Create a new ConstantTargetNode node
139
- def ConstantTargetNode: (Symbol name, ?Source source, ?Location location) -> ConstantTargetNode
115
+ def flip_flop_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location) -> FlipFlopNode
140
116
 
141
- # Create a new ConstantWriteNode node
142
- def ConstantWriteNode: (Symbol name, Location name_loc, Prism::node value, Location operator_loc, ?Source source, ?Location location) -> ConstantWriteNode
117
+ def float_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Float) -> FloatNode
143
118
 
144
- # Create a new DefNode node
145
- def DefNode: (Symbol name, Location name_loc, Prism::node? receiver, ParametersNode? parameters, Prism::node? body, Array[Symbol] locals, Location def_keyword_loc, Location? operator_loc, Location? lparen_loc, Location? rparen_loc, Location? equal_loc, Location? end_keyword_loc, ?Source source, ?Location location) -> DefNode
119
+ def for_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?index: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode, ?collection: Prism::node, ?statements: StatementsNode?, ?for_keyword_loc: Location, ?in_keyword_loc: Location, ?do_keyword_loc: Location?, ?end_keyword_loc: Location) -> ForNode
146
120
 
147
- # Create a new DefinedNode node
148
- def DefinedNode: (Location? lparen_loc, Prism::node value, Location? rparen_loc, Location keyword_loc, ?Source source, ?Location location) -> DefinedNode
121
+ def forwarding_arguments_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> ForwardingArgumentsNode
149
122
 
150
- # Create a new ElseNode node
151
- def ElseNode: (Location else_keyword_loc, StatementsNode? statements, Location? end_keyword_loc, ?Source source, ?Location location) -> ElseNode
123
+ def forwarding_parameter_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> ForwardingParameterNode
152
124
 
153
- # Create a new EmbeddedStatementsNode node
154
- def EmbeddedStatementsNode: (Location opening_loc, StatementsNode? statements, Location closing_loc, ?Source source, ?Location location) -> EmbeddedStatementsNode
125
+ def forwarding_super_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?block: BlockNode?) -> ForwardingSuperNode
155
126
 
156
- # Create a new EmbeddedVariableNode node
157
- def EmbeddedVariableNode: (Location operator_loc, Prism::node variable, ?Source source, ?Location location) -> EmbeddedVariableNode
127
+ def global_variable_and_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> GlobalVariableAndWriteNode
158
128
 
159
- # Create a new EnsureNode node
160
- def EnsureNode: (Location ensure_keyword_loc, StatementsNode? statements, Location end_keyword_loc, ?Source source, ?Location location) -> EnsureNode
129
+ def global_variable_operator_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> GlobalVariableOperatorWriteNode
161
130
 
162
- # Create a new FalseNode node
163
- def FalseNode: (?Source source, ?Location location) -> FalseNode
131
+ def global_variable_or_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> GlobalVariableOrWriteNode
164
132
 
165
- # Create a new FindPatternNode node
166
- def FindPatternNode: (Prism::node? constant, Prism::node left, Array[Prism::node] requireds, Prism::node right, Location? opening_loc, Location? closing_loc, ?Source source, ?Location location) -> FindPatternNode
133
+ def global_variable_read_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> GlobalVariableReadNode
167
134
 
168
- # Create a new FlipFlopNode node
169
- def FlipFlopNode: (Integer flags, Prism::node? left, Prism::node? right, Location operator_loc, ?Source source, ?Location location) -> FlipFlopNode
135
+ def global_variable_target_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> GlobalVariableTargetNode
170
136
 
171
- # Create a new FloatNode node
172
- def FloatNode: (Float value, ?Source source, ?Location location) -> FloatNode
137
+ def global_variable_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> GlobalVariableWriteNode
173
138
 
174
- # Create a new ForNode node
175
- def ForNode: (Prism::node index, Prism::node collection, StatementsNode? statements, Location for_keyword_loc, Location in_keyword_loc, Location? do_keyword_loc, Location end_keyword_loc, ?Source source, ?Location location) -> ForNode
139
+ def hash_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?elements: Array[AssocNode | AssocSplatNode], ?closing_loc: Location) -> HashNode
176
140
 
177
- # Create a new ForwardingArgumentsNode node
178
- def ForwardingArgumentsNode: (?Source source, ?Location location) -> ForwardingArgumentsNode
141
+ def hash_pattern_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?constant: ConstantReadNode | ConstantPathNode | nil, ?elements: Array[AssocNode], ?rest: AssocSplatNode | NoKeywordsParameterNode | nil, ?opening_loc: Location?, ?closing_loc: Location?) -> HashPatternNode
179
142
 
180
- # Create a new ForwardingParameterNode node
181
- def ForwardingParameterNode: (?Source source, ?Location location) -> ForwardingParameterNode
143
+ def if_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?if_keyword_loc: Location?, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?subsequent: ElseNode | IfNode | nil, ?end_keyword_loc: Location?) -> IfNode
182
144
 
183
- # Create a new ForwardingSuperNode node
184
- def ForwardingSuperNode: (BlockNode? block, ?Source source, ?Location location) -> ForwardingSuperNode
145
+ def imaginary_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?numeric: FloatNode | IntegerNode | RationalNode) -> ImaginaryNode
185
146
 
186
- # Create a new GlobalVariableAndWriteNode node
187
- def GlobalVariableAndWriteNode: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> GlobalVariableAndWriteNode
147
+ def implicit_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?value: LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode) -> ImplicitNode
188
148
 
189
- # Create a new GlobalVariableOperatorWriteNode node
190
- def GlobalVariableOperatorWriteNode: (Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator, ?Source source, ?Location location) -> GlobalVariableOperatorWriteNode
149
+ def implicit_rest_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> ImplicitRestNode
191
150
 
192
- # Create a new GlobalVariableOrWriteNode node
193
- def GlobalVariableOrWriteNode: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> GlobalVariableOrWriteNode
151
+ def in_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?pattern: Prism::node, ?statements: StatementsNode?, ?in_loc: Location, ?then_loc: Location?) -> InNode
194
152
 
195
- # Create a new GlobalVariableReadNode node
196
- def GlobalVariableReadNode: (Symbol name, ?Source source, ?Location location) -> GlobalVariableReadNode
153
+ def index_and_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: BlockArgumentNode?, ?operator_loc: Location, ?value: Prism::node) -> IndexAndWriteNode
197
154
 
198
- # Create a new GlobalVariableTargetNode node
199
- def GlobalVariableTargetNode: (Symbol name, ?Source source, ?Location location) -> GlobalVariableTargetNode
155
+ def index_operator_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: BlockArgumentNode?, ?binary_operator: Symbol, ?binary_operator_loc: Location, ?value: Prism::node) -> IndexOperatorWriteNode
200
156
 
201
- # Create a new GlobalVariableWriteNode node
202
- def GlobalVariableWriteNode: (Symbol name, Location name_loc, Prism::node value, Location operator_loc, ?Source source, ?Location location) -> GlobalVariableWriteNode
157
+ def index_or_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: BlockArgumentNode?, ?operator_loc: Location, ?value: Prism::node) -> IndexOrWriteNode
203
158
 
204
- # Create a new HashNode node
205
- def HashNode: (Location opening_loc, Array[AssocNode | AssocSplatNode] elements, Location closing_loc, ?Source source, ?Location location) -> HashNode
159
+ def index_target_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: BlockArgumentNode?) -> IndexTargetNode
206
160
 
207
- # Create a new HashPatternNode node
208
- def HashPatternNode: (Prism::node? constant, Array[AssocNode] elements, AssocSplatNode | NoKeywordsParameterNode | nil rest, Location? opening_loc, Location? closing_loc, ?Source source, ?Location location) -> HashPatternNode
161
+ def instance_variable_and_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> InstanceVariableAndWriteNode
209
162
 
210
- # Create a new IfNode node
211
- def IfNode: (Location? if_keyword_loc, Prism::node predicate, Location? then_keyword_loc, StatementsNode? statements, Prism::node? consequent, Location? end_keyword_loc, ?Source source, ?Location location) -> IfNode
163
+ def instance_variable_operator_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> InstanceVariableOperatorWriteNode
212
164
 
213
- # Create a new ImaginaryNode node
214
- def ImaginaryNode: (FloatNode | IntegerNode | RationalNode numeric, ?Source source, ?Location location) -> ImaginaryNode
165
+ def instance_variable_or_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> InstanceVariableOrWriteNode
215
166
 
216
- # Create a new ImplicitNode node
217
- def ImplicitNode: (Prism::node value, ?Source source, ?Location location) -> ImplicitNode
167
+ def instance_variable_read_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> InstanceVariableReadNode
218
168
 
219
- # Create a new ImplicitRestNode node
220
- def ImplicitRestNode: (?Source source, ?Location location) -> ImplicitRestNode
169
+ def instance_variable_target_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> InstanceVariableTargetNode
221
170
 
222
- # Create a new InNode node
223
- def InNode: (Prism::node pattern, StatementsNode? statements, Location in_loc, Location? then_loc, ?Source source, ?Location location) -> InNode
171
+ def instance_variable_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> InstanceVariableWriteNode
224
172
 
225
- # Create a new IndexAndWriteNode node
226
- def IndexAndWriteNode: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> IndexAndWriteNode
173
+ def integer_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Integer) -> IntegerNode
227
174
 
228
- # Create a new IndexOperatorWriteNode node
229
- def IndexOperatorWriteNode: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Symbol binary_operator, Location binary_operator_loc, Prism::node value, ?Source source, ?Location location) -> IndexOperatorWriteNode
175
+ def interpolated_match_last_line_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedMatchLastLineNode
230
176
 
231
- # Create a new IndexOrWriteNode node
232
- def IndexOrWriteNode: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> IndexOrWriteNode
177
+ def interpolated_regular_expression_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedRegularExpressionNode
233
178
 
234
- # Create a new IndexTargetNode node
235
- def IndexTargetNode: (Integer flags, Prism::node receiver, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, ?Source source, ?Location location) -> IndexTargetNode
179
+ def interpolated_string_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], ?closing_loc: Location?) -> InterpolatedStringNode
236
180
 
237
- # Create a new InstanceVariableAndWriteNode node
238
- def InstanceVariableAndWriteNode: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> InstanceVariableAndWriteNode
181
+ def interpolated_symbol_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location?) -> InterpolatedSymbolNode
239
182
 
240
- # Create a new InstanceVariableOperatorWriteNode node
241
- def InstanceVariableOperatorWriteNode: (Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator, ?Source source, ?Location location) -> InstanceVariableOperatorWriteNode
183
+ def interpolated_x_string_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedXStringNode
242
184
 
243
- # Create a new InstanceVariableOrWriteNode node
244
- def InstanceVariableOrWriteNode: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> InstanceVariableOrWriteNode
185
+ def it_local_variable_read_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> ItLocalVariableReadNode
245
186
 
246
- # Create a new InstanceVariableReadNode node
247
- def InstanceVariableReadNode: (Symbol name, ?Source source, ?Location location) -> InstanceVariableReadNode
187
+ def it_parameters_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> ItParametersNode
248
188
 
249
- # Create a new InstanceVariableTargetNode node
250
- def InstanceVariableTargetNode: (Symbol name, ?Source source, ?Location location) -> InstanceVariableTargetNode
189
+ def keyword_hash_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?elements: Array[AssocNode | AssocSplatNode]) -> KeywordHashNode
251
190
 
252
- # Create a new InstanceVariableWriteNode node
253
- def InstanceVariableWriteNode: (Symbol name, Location name_loc, Prism::node value, Location operator_loc, ?Source source, ?Location location) -> InstanceVariableWriteNode
191
+ def keyword_rest_parameter_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> KeywordRestParameterNode
254
192
 
255
- # Create a new IntegerNode node
256
- def IntegerNode: (Integer flags, Integer value, ?Source source, ?Location location) -> IntegerNode
193
+ def lambda_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?operator_loc: Location, ?opening_loc: Location, ?closing_loc: Location, ?parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil, ?body: StatementsNode | BeginNode | nil) -> LambdaNode
257
194
 
258
- # Create a new InterpolatedMatchLastLineNode node
259
- def InterpolatedMatchLastLineNode: (Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc, ?Source source, ?Location location) -> InterpolatedMatchLastLineNode
195
+ def local_variable_and_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer) -> LocalVariableAndWriteNode
260
196
 
261
- # Create a new InterpolatedRegularExpressionNode node
262
- def InterpolatedRegularExpressionNode: (Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc, ?Source source, ?Location location) -> InterpolatedRegularExpressionNode
197
+ def local_variable_operator_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?binary_operator: Symbol, ?depth: Integer) -> LocalVariableOperatorWriteNode
263
198
 
264
- # Create a new InterpolatedStringNode node
265
- def InterpolatedStringNode: (Integer flags, Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode] parts, Location? closing_loc, ?Source source, ?Location location) -> InterpolatedStringNode
199
+ def local_variable_or_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer) -> LocalVariableOrWriteNode
266
200
 
267
- # Create a new InterpolatedSymbolNode node
268
- def InterpolatedSymbolNode: (Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location? closing_loc, ?Source source, ?Location location) -> InterpolatedSymbolNode
201
+ def local_variable_read_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableReadNode
269
202
 
270
- # Create a new InterpolatedXStringNode node
271
- def InterpolatedXStringNode: (Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc, ?Source source, ?Location location) -> InterpolatedXStringNode
203
+ def local_variable_target_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableTargetNode
272
204
 
273
- # Create a new ItParametersNode node
274
- def ItParametersNode: (?Source source, ?Location location) -> ItParametersNode
205
+ def local_variable_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> LocalVariableWriteNode
275
206
 
276
- # Create a new KeywordHashNode node
277
- def KeywordHashNode: (Integer flags, Array[AssocNode | AssocSplatNode] elements, ?Source source, ?Location location) -> KeywordHashNode
207
+ def match_last_line_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> MatchLastLineNode
278
208
 
279
- # Create a new KeywordRestParameterNode node
280
- def KeywordRestParameterNode: (Integer flags, Symbol? name, Location? name_loc, Location operator_loc, ?Source source, ?Location location) -> KeywordRestParameterNode
209
+ def match_predicate_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location) -> MatchPredicateNode
281
210
 
282
- # Create a new LambdaNode node
283
- def LambdaNode: (Array[Symbol] locals, Location operator_loc, Location opening_loc, Location closing_loc, Prism::node? parameters, Prism::node? body, ?Source source, ?Location location) -> LambdaNode
211
+ def match_required_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location) -> MatchRequiredNode
284
212
 
285
- # Create a new LocalVariableAndWriteNode node
286
- def LocalVariableAndWriteNode: (Location name_loc, Location operator_loc, Prism::node value, Symbol name, Integer depth, ?Source source, ?Location location) -> LocalVariableAndWriteNode
213
+ def match_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?call: CallNode, ?targets: Array[LocalVariableTargetNode]) -> MatchWriteNode
287
214
 
288
- # Create a new LocalVariableOperatorWriteNode node
289
- def LocalVariableOperatorWriteNode: (Location name_loc, Location binary_operator_loc, Prism::node value, Symbol name, Symbol binary_operator, Integer depth, ?Source source, ?Location location) -> LocalVariableOperatorWriteNode
215
+ def missing_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> MissingNode
290
216
 
291
- # Create a new LocalVariableOrWriteNode node
292
- def LocalVariableOrWriteNode: (Location name_loc, Location operator_loc, Prism::node value, Symbol name, Integer depth, ?Source source, ?Location location) -> LocalVariableOrWriteNode
217
+ def module_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?module_keyword_loc: Location, ?constant_path: ConstantReadNode | ConstantPathNode | MissingNode, ?body: StatementsNode | BeginNode | nil, ?end_keyword_loc: Location, ?name: Symbol) -> ModuleNode
293
218
 
294
- # Create a new LocalVariableReadNode node
295
- def LocalVariableReadNode: (Symbol name, Integer depth, ?Source source, ?Location location) -> LocalVariableReadNode
219
+ def multi_target_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], ?rest: ImplicitRestNode | SplatNode | nil, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], ?lparen_loc: Location?, ?rparen_loc: Location?) -> MultiTargetNode
296
220
 
297
- # Create a new LocalVariableTargetNode node
298
- def LocalVariableTargetNode: (Symbol name, Integer depth, ?Source source, ?Location location) -> LocalVariableTargetNode
221
+ def multi_write_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode], ?rest: ImplicitRestNode | SplatNode | nil, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode], ?lparen_loc: Location?, ?rparen_loc: Location?, ?operator_loc: Location, ?value: Prism::node) -> MultiWriteNode
299
222
 
300
- # Create a new LocalVariableWriteNode node
301
- def LocalVariableWriteNode: (Symbol name, Integer depth, Location name_loc, Prism::node value, Location operator_loc, ?Source source, ?Location location) -> LocalVariableWriteNode
223
+ def next_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: ArgumentsNode?, ?keyword_loc: Location) -> NextNode
302
224
 
303
- # Create a new MatchLastLineNode node
304
- def MatchLastLineNode: (Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped, ?Source source, ?Location location) -> MatchLastLineNode
225
+ def nil_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> NilNode
305
226
 
306
- # Create a new MatchPredicateNode node
307
- def MatchPredicateNode: (Prism::node value, Prism::node pattern, Location operator_loc, ?Source source, ?Location location) -> MatchPredicateNode
227
+ def no_keywords_parameter_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?keyword_loc: Location) -> NoKeywordsParameterNode
308
228
 
309
- # Create a new MatchRequiredNode node
310
- def MatchRequiredNode: (Prism::node value, Prism::node pattern, Location operator_loc, ?Source source, ?Location location) -> MatchRequiredNode
229
+ def numbered_parameters_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?maximum: Integer) -> NumberedParametersNode
311
230
 
312
- # Create a new MatchWriteNode node
313
- def MatchWriteNode: (CallNode call, Array[LocalVariableTargetNode] targets, ?Source source, ?Location location) -> MatchWriteNode
231
+ def numbered_reference_read_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?number: Integer) -> NumberedReferenceReadNode
314
232
 
315
- # Create a new MissingNode node
316
- def MissingNode: (?Source source, ?Location location) -> MissingNode
233
+ def optional_keyword_parameter_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node) -> OptionalKeywordParameterNode
317
234
 
318
- # Create a new ModuleNode node
319
- def ModuleNode: (Array[Symbol] locals, Location module_keyword_loc, Prism::node constant_path, Prism::node? body, Location end_keyword_loc, Symbol name, ?Source source, ?Location location) -> ModuleNode
235
+ def optional_parameter_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> OptionalParameterNode
320
236
 
321
- # Create a new MultiTargetNode node
322
- def MultiTargetNode: (Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode] lefts, Prism::node? rest, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode] rights, Location? lparen_loc, Location? rparen_loc, ?Source source, ?Location location) -> MultiTargetNode
237
+ def or_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> OrNode
323
238
 
324
- # Create a new MultiWriteNode node
325
- def MultiWriteNode: (Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode] lefts, Prism::node? rest, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode] rights, Location? lparen_loc, Location? rparen_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> MultiWriteNode
239
+ def parameters_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?requireds: Array[RequiredParameterNode | MultiTargetNode], ?optionals: Array[OptionalParameterNode], ?rest: RestParameterNode | ImplicitRestNode | nil, ?posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode], ?keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode], ?keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil, ?block: BlockParameterNode?) -> ParametersNode
326
240
 
327
- # Create a new NextNode node
328
- def NextNode: (ArgumentsNode? arguments, Location keyword_loc, ?Source source, ?Location location) -> NextNode
241
+ def parentheses_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?body: Prism::node?, ?opening_loc: Location, ?closing_loc: Location) -> ParenthesesNode
329
242
 
330
- # Create a new NilNode node
331
- def NilNode: (?Source source, ?Location location) -> NilNode
243
+ def pinned_expression_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node, ?operator_loc: Location, ?lparen_loc: Location, ?rparen_loc: Location) -> PinnedExpressionNode
332
244
 
333
- # Create a new NoKeywordsParameterNode node
334
- def NoKeywordsParameterNode: (Location operator_loc, Location keyword_loc, ?Source source, ?Location location) -> NoKeywordsParameterNode
245
+ def pinned_variable_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?variable: LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode | MissingNode, ?operator_loc: Location) -> PinnedVariableNode
335
246
 
336
- # Create a new NumberedParametersNode node
337
- def NumberedParametersNode: (Integer maximum, ?Source source, ?Location location) -> NumberedParametersNode
247
+ def post_execution_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location) -> PostExecutionNode
338
248
 
339
- # Create a new NumberedReferenceReadNode node
340
- def NumberedReferenceReadNode: (Integer number, ?Source source, ?Location location) -> NumberedReferenceReadNode
249
+ def pre_execution_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location) -> PreExecutionNode
341
250
 
342
- # Create a new OptionalKeywordParameterNode node
343
- def OptionalKeywordParameterNode: (Integer flags, Symbol name, Location name_loc, Prism::node value, ?Source source, ?Location location) -> OptionalKeywordParameterNode
251
+ def program_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?statements: StatementsNode) -> ProgramNode
344
252
 
345
- # Create a new OptionalParameterNode node
346
- def OptionalParameterNode: (Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> OptionalParameterNode
253
+ def range_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location) -> RangeNode
347
254
 
348
- # Create a new OrNode node
349
- def OrNode: (Prism::node left, Prism::node right, Location operator_loc, ?Source source, ?Location location) -> OrNode
255
+ def rational_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?numerator: Integer, ?denominator: Integer) -> RationalNode
350
256
 
351
- # Create a new ParametersNode node
352
- def ParametersNode: (Array[RequiredParameterNode | MultiTargetNode] requireds, Array[OptionalParameterNode] optionals, RestParameterNode | ImplicitRestNode | nil rest, Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode] posts, Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode] keywords, KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil keyword_rest, BlockParameterNode? block, ?Source source, ?Location location) -> ParametersNode
257
+ def redo_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> RedoNode
353
258
 
354
- # Create a new ParenthesesNode node
355
- def ParenthesesNode: (Prism::node? body, Location opening_loc, Location closing_loc, ?Source source, ?Location location) -> ParenthesesNode
259
+ def regular_expression_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> RegularExpressionNode
356
260
 
357
- # Create a new PinnedExpressionNode node
358
- def PinnedExpressionNode: (Prism::node expression, Location operator_loc, Location lparen_loc, Location rparen_loc, ?Source source, ?Location location) -> PinnedExpressionNode
261
+ def required_keyword_parameter_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location) -> RequiredKeywordParameterNode
359
262
 
360
- # Create a new PinnedVariableNode node
361
- def PinnedVariableNode: (Prism::node variable, Location operator_loc, ?Source source, ?Location location) -> PinnedVariableNode
263
+ def required_parameter_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> RequiredParameterNode
362
264
 
363
- # Create a new PostExecutionNode node
364
- def PostExecutionNode: (StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc, ?Source source, ?Location location) -> PostExecutionNode
265
+ def rescue_modifier_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node, ?keyword_loc: Location, ?rescue_expression: Prism::node) -> RescueModifierNode
365
266
 
366
- # Create a new PreExecutionNode node
367
- def PreExecutionNode: (StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc, ?Source source, ?Location location) -> PreExecutionNode
267
+ def rescue_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?exceptions: Array[Prism::node], ?operator_loc: Location?, ?reference: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode | nil, ?statements: StatementsNode?, ?subsequent: RescueNode?) -> RescueNode
368
268
 
369
- # Create a new ProgramNode node
370
- def ProgramNode: (Array[Symbol] locals, StatementsNode statements, ?Source source, ?Location location) -> ProgramNode
269
+ def rest_parameter_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> RestParameterNode
371
270
 
372
- # Create a new RangeNode node
373
- def RangeNode: (Integer flags, Prism::node? left, Prism::node? right, Location operator_loc, ?Source source, ?Location location) -> RangeNode
271
+ def retry_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> RetryNode
374
272
 
375
- # Create a new RationalNode node
376
- def RationalNode: (Prism::node numeric, ?Source source, ?Location location) -> RationalNode
273
+ def return_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?arguments: ArgumentsNode?) -> ReturnNode
377
274
 
378
- # Create a new RedoNode node
379
- def RedoNode: (?Source source, ?Location location) -> RedoNode
275
+ def self_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> SelfNode
380
276
 
381
- # Create a new RegularExpressionNode node
382
- def RegularExpressionNode: (Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped, ?Source source, ?Location location) -> RegularExpressionNode
277
+ def shareable_constant_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode) -> ShareableConstantNode
383
278
 
384
- # Create a new RequiredKeywordParameterNode node
385
- def RequiredKeywordParameterNode: (Integer flags, Symbol name, Location name_loc, ?Source source, ?Location location) -> RequiredKeywordParameterNode
279
+ def singleton_class_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?class_keyword_loc: Location, ?operator_loc: Location, ?expression: Prism::node, ?body: StatementsNode | BeginNode | nil, ?end_keyword_loc: Location) -> SingletonClassNode
386
280
 
387
- # Create a new RequiredParameterNode node
388
- def RequiredParameterNode: (Integer flags, Symbol name, ?Source source, ?Location location) -> RequiredParameterNode
281
+ def source_encoding_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> SourceEncodingNode
389
282
 
390
- # Create a new RescueModifierNode node
391
- def RescueModifierNode: (Prism::node expression, Location keyword_loc, Prism::node rescue_expression, ?Source source, ?Location location) -> RescueModifierNode
283
+ def source_file_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?filepath: String) -> SourceFileNode
392
284
 
393
- # Create a new RescueNode node
394
- def RescueNode: (Location keyword_loc, Array[Prism::node] exceptions, Location? operator_loc, Prism::node? reference, StatementsNode? statements, RescueNode? consequent, ?Source source, ?Location location) -> RescueNode
285
+ def source_line_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> SourceLineNode
395
286
 
396
- # Create a new RestParameterNode node
397
- def RestParameterNode: (Integer flags, Symbol? name, Location? name_loc, Location operator_loc, ?Source source, ?Location location) -> RestParameterNode
287
+ def splat_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?expression: Prism::node?) -> SplatNode
398
288
 
399
- # Create a new RetryNode node
400
- def RetryNode: (?Source source, ?Location location) -> RetryNode
289
+ def statements_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?body: Array[Prism::node]) -> StatementsNode
401
290
 
402
- # Create a new ReturnNode node
403
- def ReturnNode: (Integer flags, Location keyword_loc, ArgumentsNode? arguments, ?Source source, ?Location location) -> ReturnNode
291
+ def string_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?content_loc: Location, ?closing_loc: Location?, ?unescaped: String) -> StringNode
404
292
 
405
- # Create a new SelfNode node
406
- def SelfNode: (?Source source, ?Location location) -> SelfNode
293
+ def super_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?, ?block: BlockNode | BlockArgumentNode | nil) -> SuperNode
407
294
 
408
- # Create a new ShareableConstantNode node
409
- def ShareableConstantNode: (Integer flags, ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode write, ?Source source, ?Location location) -> ShareableConstantNode
295
+ def symbol_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?value_loc: Location?, ?closing_loc: Location?, ?unescaped: String) -> SymbolNode
410
296
 
411
- # Create a new SingletonClassNode node
412
- def SingletonClassNode: (Array[Symbol] locals, Location class_keyword_loc, Location operator_loc, Prism::node expression, Prism::node? body, Location end_keyword_loc, ?Source source, ?Location location) -> SingletonClassNode
297
+ def true_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer) -> TrueNode
413
298
 
414
- # Create a new SourceEncodingNode node
415
- def SourceEncodingNode: (?Source source, ?Location location) -> SourceEncodingNode
299
+ def undef_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?names: Array[SymbolNode | InterpolatedSymbolNode], ?keyword_loc: Location) -> UndefNode
416
300
 
417
- # Create a new SourceFileNode node
418
- def SourceFileNode: (Integer flags, String filepath, ?Source source, ?Location location) -> SourceFileNode
301
+ def unless_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?else_clause: ElseNode?, ?end_keyword_loc: Location?) -> UnlessNode
419
302
 
420
- # Create a new SourceLineNode node
421
- def SourceLineNode: (?Source source, ?Location location) -> SourceLineNode
303
+ def until_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?do_keyword_loc: Location?, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?) -> UntilNode
422
304
 
423
- # Create a new SplatNode node
424
- def SplatNode: (Location operator_loc, Prism::node? expression, ?Source source, ?Location location) -> SplatNode
305
+ def when_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?conditions: Array[Prism::node], ?then_keyword_loc: Location?, ?statements: StatementsNode?) -> WhenNode
425
306
 
426
- # Create a new StatementsNode node
427
- def StatementsNode: (Array[Prism::node] body, ?Source source, ?Location location) -> StatementsNode
307
+ def while_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?do_keyword_loc: Location?, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?) -> WhileNode
428
308
 
429
- # Create a new StringNode node
430
- def StringNode: (Integer flags, Location? opening_loc, Location content_loc, Location? closing_loc, String unescaped, ?Source source, ?Location location) -> StringNode
309
+ def x_string_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> XStringNode
431
310
 
432
- # Create a new SuperNode node
433
- def SuperNode: (Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc, Prism::node? block, ?Source source, ?Location location) -> SuperNode
311
+ def yield_node: (?source: Source, ?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?) -> YieldNode
434
312
 
435
- # Create a new SymbolNode node
436
- def SymbolNode: (Integer flags, Location? opening_loc, Location? value_loc, Location? closing_loc, String unescaped, ?Source source, ?Location location) -> SymbolNode
313
+ def arguments_node_flag: (Symbol name) -> Integer
437
314
 
438
- # Create a new TrueNode node
439
- def TrueNode: (?Source source, ?Location location) -> TrueNode
315
+ def array_node_flag: (Symbol name) -> Integer
440
316
 
441
- # Create a new UndefNode node
442
- def UndefNode: (Array[SymbolNode | InterpolatedSymbolNode] names, Location keyword_loc, ?Source source, ?Location location) -> UndefNode
317
+ def call_node_flag: (Symbol name) -> Integer
443
318
 
444
- # Create a new UnlessNode node
445
- def UnlessNode: (Location keyword_loc, Prism::node predicate, Location? then_keyword_loc, StatementsNode? statements, ElseNode? consequent, Location? end_keyword_loc, ?Source source, ?Location location) -> UnlessNode
319
+ def encoding_flag: (Symbol name) -> Integer
446
320
 
447
- # Create a new UntilNode node
448
- def UntilNode: (Integer flags, Location keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements, ?Source source, ?Location location) -> UntilNode
321
+ def integer_base_flag: (Symbol name) -> Integer
449
322
 
450
- # Create a new WhenNode node
451
- def WhenNode: (Location keyword_loc, Array[Prism::node] conditions, Location? then_keyword_loc, StatementsNode? statements, ?Source source, ?Location location) -> WhenNode
323
+ def interpolated_string_node_flag: (Symbol name) -> Integer
324
+
325
+ def keyword_hash_node_flag: (Symbol name) -> Integer
326
+
327
+ def loop_flag: (Symbol name) -> Integer
328
+
329
+ def parameter_flag: (Symbol name) -> Integer
330
+
331
+ def range_flag: (Symbol name) -> Integer
332
+
333
+ def regular_expression_flag: (Symbol name) -> Integer
334
+
335
+ def shareable_constant_node_flag: (Symbol name) -> Integer
336
+
337
+ def string_flag: (Symbol name) -> Integer
338
+
339
+ def symbol_flag: (Symbol name) -> Integer
340
+
341
+ private
452
342
 
453
- # Create a new WhileNode node
454
- def WhileNode: (Integer flags, Location keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements, ?Source source, ?Location location) -> WhileNode
343
+ def default_source: () -> Source
455
344
 
456
- # Create a new XStringNode node
457
- def XStringNode: (Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped, ?Source source, ?Location location) -> XStringNode
345
+ def default_location: () -> Location
458
346
 
459
- # Create a new YieldNode node
460
- def YieldNode: (Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc, ?Source source, ?Location location) -> YieldNode
347
+ def default_node: (Source source, Location location) -> node
461
348
  end
462
349
  end