refract 0.0.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +21 -0
  3. data/README.md +7 -0
  4. data/lib/refract/basic_visitor.rb +45 -0
  5. data/lib/refract/converter.rb +1204 -0
  6. data/lib/refract/formatter.rb +1304 -0
  7. data/lib/refract/mutation_visitor.rb +895 -0
  8. data/lib/refract/nodes/alias_global_variable_node.rb +14 -0
  9. data/lib/refract/nodes/alias_method_node.rb +14 -0
  10. data/lib/refract/nodes/alternation_pattern_node.rb +14 -0
  11. data/lib/refract/nodes/and_node.rb +15 -0
  12. data/lib/refract/nodes/arguments_node.rb +13 -0
  13. data/lib/refract/nodes/array_node.rb +13 -0
  14. data/lib/refract/nodes/array_pattern_node.rb +16 -0
  15. data/lib/refract/nodes/assoc_node.rb +14 -0
  16. data/lib/refract/nodes/assoc_splat_node.rb +13 -0
  17. data/lib/refract/nodes/back_reference_read_node.rb +13 -0
  18. data/lib/refract/nodes/begin_node.rb +16 -0
  19. data/lib/refract/nodes/block_argument_node.rb +13 -0
  20. data/lib/refract/nodes/block_local_variable_node.rb +13 -0
  21. data/lib/refract/nodes/block_node.rb +14 -0
  22. data/lib/refract/nodes/block_parameter_node.rb +13 -0
  23. data/lib/refract/nodes/block_parameters_node.rb +14 -0
  24. data/lib/refract/nodes/break_node.rb +13 -0
  25. data/lib/refract/nodes/call_and_write_node.rb +15 -0
  26. data/lib/refract/nodes/call_node.rb +16 -0
  27. data/lib/refract/nodes/call_operator_write_node.rb +16 -0
  28. data/lib/refract/nodes/call_or_write_node.rb +15 -0
  29. data/lib/refract/nodes/call_target_node.rb +14 -0
  30. data/lib/refract/nodes/capture_pattern_node.rb +14 -0
  31. data/lib/refract/nodes/case_match_node.rb +15 -0
  32. data/lib/refract/nodes/case_node.rb +15 -0
  33. data/lib/refract/nodes/class_node.rb +15 -0
  34. data/lib/refract/nodes/class_variable_and_write_node.rb +14 -0
  35. data/lib/refract/nodes/class_variable_operator_write_node.rb +15 -0
  36. data/lib/refract/nodes/class_variable_or_write_node.rb +14 -0
  37. data/lib/refract/nodes/class_variable_read_node.rb +13 -0
  38. data/lib/refract/nodes/class_variable_target_node.rb +13 -0
  39. data/lib/refract/nodes/class_variable_write_node.rb +14 -0
  40. data/lib/refract/nodes/constant_and_write_node.rb +14 -0
  41. data/lib/refract/nodes/constant_operator_write_node.rb +15 -0
  42. data/lib/refract/nodes/constant_or_write_node.rb +14 -0
  43. data/lib/refract/nodes/constant_path_and_write_node.rb +14 -0
  44. data/lib/refract/nodes/constant_path_node.rb +14 -0
  45. data/lib/refract/nodes/constant_path_operator_write_node.rb +15 -0
  46. data/lib/refract/nodes/constant_path_or_write_node.rb +14 -0
  47. data/lib/refract/nodes/constant_path_target_node.rb +14 -0
  48. data/lib/refract/nodes/constant_path_write_node.rb +14 -0
  49. data/lib/refract/nodes/constant_read_node.rb +13 -0
  50. data/lib/refract/nodes/constant_target_node.rb +13 -0
  51. data/lib/refract/nodes/constant_write_node.rb +14 -0
  52. data/lib/refract/nodes/def_node.rb +16 -0
  53. data/lib/refract/nodes/defined_node.rb +13 -0
  54. data/lib/refract/nodes/else_node.rb +13 -0
  55. data/lib/refract/nodes/embedded_statements_node.rb +13 -0
  56. data/lib/refract/nodes/embedded_variable_node.rb +13 -0
  57. data/lib/refract/nodes/ensure_node.rb +13 -0
  58. data/lib/refract/nodes/false_node.rb +9 -0
  59. data/lib/refract/nodes/find_pattern_node.rb +16 -0
  60. data/lib/refract/nodes/flip_flop_node.rb +15 -0
  61. data/lib/refract/nodes/float_node.rb +13 -0
  62. data/lib/refract/nodes/for_node.rb +15 -0
  63. data/lib/refract/nodes/forwarding_arguments_node.rb +9 -0
  64. data/lib/refract/nodes/forwarding_parameter_node.rb +9 -0
  65. data/lib/refract/nodes/forwarding_super_node.rb +13 -0
  66. data/lib/refract/nodes/global_variable_and_write_node.rb +14 -0
  67. data/lib/refract/nodes/global_variable_operator_write_node.rb +15 -0
  68. data/lib/refract/nodes/global_variable_or_write_node.rb +14 -0
  69. data/lib/refract/nodes/global_variable_read_node.rb +13 -0
  70. data/lib/refract/nodes/global_variable_target_node.rb +13 -0
  71. data/lib/refract/nodes/global_variable_write_node.rb +14 -0
  72. data/lib/refract/nodes/hash_node.rb +13 -0
  73. data/lib/refract/nodes/hash_pattern_node.rb +14 -0
  74. data/lib/refract/nodes/if_node.rb +16 -0
  75. data/lib/refract/nodes/imaginary_node.rb +13 -0
  76. data/lib/refract/nodes/implicit_node.rb +13 -0
  77. data/lib/refract/nodes/implicit_rest_node.rb +9 -0
  78. data/lib/refract/nodes/in_node.rb +14 -0
  79. data/lib/refract/nodes/index_and_write_node.rb +16 -0
  80. data/lib/refract/nodes/index_operator_write_node.rb +17 -0
  81. data/lib/refract/nodes/index_or_write_node.rb +16 -0
  82. data/lib/refract/nodes/index_target_node.rb +15 -0
  83. data/lib/refract/nodes/instance_variable_and_write_node.rb +14 -0
  84. data/lib/refract/nodes/instance_variable_operator_write_node.rb +15 -0
  85. data/lib/refract/nodes/instance_variable_or_write_node.rb +14 -0
  86. data/lib/refract/nodes/instance_variable_read_node.rb +13 -0
  87. data/lib/refract/nodes/instance_variable_target_node.rb +13 -0
  88. data/lib/refract/nodes/instance_variable_write_node.rb +14 -0
  89. data/lib/refract/nodes/integer_node.rb +13 -0
  90. data/lib/refract/nodes/interpolated_match_last_line_node.rb +17 -0
  91. data/lib/refract/nodes/interpolated_regular_expression_node.rb +17 -0
  92. data/lib/refract/nodes/interpolated_string_node.rb +13 -0
  93. data/lib/refract/nodes/interpolated_symbol_node.rb +13 -0
  94. data/lib/refract/nodes/interpolated_x_string_node.rb +13 -0
  95. data/lib/refract/nodes/it_local_variable_read_node.rb +9 -0
  96. data/lib/refract/nodes/it_parameters_node.rb +9 -0
  97. data/lib/refract/nodes/keyword_hash_node.rb +13 -0
  98. data/lib/refract/nodes/keyword_rest_parameter_node.rb +13 -0
  99. data/lib/refract/nodes/lambda_node.rb +14 -0
  100. data/lib/refract/nodes/local_variable_and_write_node.rb +15 -0
  101. data/lib/refract/nodes/local_variable_operator_write_node.rb +16 -0
  102. data/lib/refract/nodes/local_variable_or_write_node.rb +15 -0
  103. data/lib/refract/nodes/local_variable_read_node.rb +13 -0
  104. data/lib/refract/nodes/local_variable_target_node.rb +13 -0
  105. data/lib/refract/nodes/local_variable_write_node.rb +14 -0
  106. data/lib/refract/nodes/match_last_line_node.rb +17 -0
  107. data/lib/refract/nodes/match_predicate_node.rb +14 -0
  108. data/lib/refract/nodes/match_required_node.rb +14 -0
  109. data/lib/refract/nodes/match_write_node.rb +14 -0
  110. data/lib/refract/nodes/missing_node.rb +9 -0
  111. data/lib/refract/nodes/module_node.rb +14 -0
  112. data/lib/refract/nodes/multi_target_node.rb +15 -0
  113. data/lib/refract/nodes/multi_write_node.rb +16 -0
  114. data/lib/refract/nodes/next_node.rb +13 -0
  115. data/lib/refract/nodes/nil_node.rb +9 -0
  116. data/lib/refract/nodes/no_keywords_parameter_node.rb +9 -0
  117. data/lib/refract/nodes/numbered_parameters_node.rb +9 -0
  118. data/lib/refract/nodes/numbered_reference_read_node.rb +13 -0
  119. data/lib/refract/nodes/optional_keyword_parameter_node.rb +14 -0
  120. data/lib/refract/nodes/optional_parameter_node.rb +14 -0
  121. data/lib/refract/nodes/or_node.rb +15 -0
  122. data/lib/refract/nodes/parameters_node.rb +19 -0
  123. data/lib/refract/nodes/parentheses_node.rb +13 -0
  124. data/lib/refract/nodes/pinned_expression_node.rb +13 -0
  125. data/lib/refract/nodes/pinned_variable_node.rb +13 -0
  126. data/lib/refract/nodes/post_execution_node.rb +13 -0
  127. data/lib/refract/nodes/pre_execution_node.rb +13 -0
  128. data/lib/refract/nodes/program_node.rb +13 -0
  129. data/lib/refract/nodes/range_node.rb +15 -0
  130. data/lib/refract/nodes/rational_node.rb +14 -0
  131. data/lib/refract/nodes/redo_node.rb +9 -0
  132. data/lib/refract/nodes/regular_expression_node.rb +17 -0
  133. data/lib/refract/nodes/required_keyword_parameter_node.rb +13 -0
  134. data/lib/refract/nodes/required_parameter_node.rb +13 -0
  135. data/lib/refract/nodes/rescue_modifier_node.rb +14 -0
  136. data/lib/refract/nodes/rescue_node.rb +16 -0
  137. data/lib/refract/nodes/rest_parameter_node.rb +13 -0
  138. data/lib/refract/nodes/retry_node.rb +9 -0
  139. data/lib/refract/nodes/return_node.rb +13 -0
  140. data/lib/refract/nodes/self_node.rb +9 -0
  141. data/lib/refract/nodes/shareable_constant_node.rb +13 -0
  142. data/lib/refract/nodes/singleton_class_node.rb +14 -0
  143. data/lib/refract/nodes/source_encoding_node.rb +9 -0
  144. data/lib/refract/nodes/source_file_node.rb +9 -0
  145. data/lib/refract/nodes/source_line_node.rb +9 -0
  146. data/lib/refract/nodes/splat_node.rb +13 -0
  147. data/lib/refract/nodes/statements_node.rb +13 -0
  148. data/lib/refract/nodes/string_node.rb +13 -0
  149. data/lib/refract/nodes/super_node.rb +14 -0
  150. data/lib/refract/nodes/symbol_node.rb +13 -0
  151. data/lib/refract/nodes/true_node.rb +9 -0
  152. data/lib/refract/nodes/undef_node.rb +13 -0
  153. data/lib/refract/nodes/unless_node.rb +16 -0
  154. data/lib/refract/nodes/until_node.rb +15 -0
  155. data/lib/refract/nodes/when_node.rb +14 -0
  156. data/lib/refract/nodes/while_node.rb +15 -0
  157. data/lib/refract/nodes/x_string_node.rb +13 -0
  158. data/lib/refract/nodes/yield_node.rb +13 -0
  159. data/lib/refract/version.rb +5 -0
  160. data/lib/refract/visitor.rb +689 -0
  161. data/lib/refract.rb +50 -55
  162. data/lib/rubocop/cop/refract/ordered_visit_methods.rb +107 -0
  163. data/lib/rubocop/cop/refract_cops.rb +3 -0
  164. metadata +189 -26
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ItLocalVariableReadNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ItParametersNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class KeywordHashNode < Node
5
+ def initialize(prism_node: nil, elements:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @elements = elements
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :elements
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class KeywordRestParameterNode < Node
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :name
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LambdaNode < Node
5
+ def initialize(prism_node: nil, parameters:, body:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @parameters = parameters
8
+ @body = body
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :parameters, :body
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableAndWriteNode < Node
5
+ def initialize(prism_node: nil, name:, value:, depth:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ @value = value
9
+ @depth = depth
10
+ freeze
11
+ end
12
+
13
+ attr_accessor :name, :value, :depth
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableOperatorWriteNode < Node
5
+ def initialize(prism_node: nil, name:, value:, binary_operator:, depth:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ @value = value
9
+ @binary_operator = binary_operator
10
+ @depth = depth
11
+ freeze
12
+ end
13
+
14
+ attr_accessor :name, :value, :binary_operator, :depth
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableOrWriteNode < Node
5
+ def initialize(prism_node: nil, name:, value:, depth:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ @value = value
9
+ @depth = depth
10
+ freeze
11
+ end
12
+
13
+ attr_accessor :name, :value, :depth
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableReadNode < Node
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :name
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableTargetNode < Node
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :name
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableWriteNode < Node
5
+ def initialize(prism_node: nil, name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ @value = value
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :name, :value
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MatchLastLineNode < Node
5
+ def initialize(prism_node: nil, unescaped:, ignore_case:, multi_line:, extended:, once:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @unescaped = unescaped
8
+ @ignore_case = ignore_case
9
+ @multi_line = multi_line
10
+ @extended = extended
11
+ @once = once
12
+ freeze
13
+ end
14
+
15
+ attr_accessor :unescaped, :ignore_case, :multi_line, :extended, :once
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MatchPredicateNode < Node
5
+ def initialize(prism_node: nil, value:, pattern:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @value = value
8
+ @pattern = pattern
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :value, :pattern
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MatchRequiredNode < Node
5
+ def initialize(prism_node: nil, value:, pattern:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @value = value
8
+ @pattern = pattern
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :value, :pattern
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MatchWriteNode < Node
5
+ def initialize(prism_node: nil, call:, targets:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @call = call
8
+ @targets = targets
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :call, :targets
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MissingNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ModuleNode < Node
5
+ def initialize(prism_node: nil, constant_path:, body:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @constant_path = constant_path
8
+ @body = body
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :constant_path, :body
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MultiTargetNode < Node
5
+ def initialize(prism_node: nil, lefts:, rest:, rights:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @lefts = lefts
8
+ @rest = rest
9
+ @rights = rights
10
+ freeze
11
+ end
12
+
13
+ attr_accessor :lefts, :rest, :rights
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MultiWriteNode < Node
5
+ def initialize(prism_node: nil, lefts:, rest:, rights:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @lefts = lefts
8
+ @rest = rest
9
+ @rights = rights
10
+ @value = value
11
+ freeze
12
+ end
13
+
14
+ attr_accessor :lefts, :rest, :rights, :value
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NextNode < Node
5
+ def initialize(prism_node: nil, arguments:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @arguments = arguments
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :arguments
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NilNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NoKeywordsParameterNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NumberedParametersNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NumberedReferenceReadNode < Node
5
+ def initialize(prism_node: nil, number:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @number = number
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :number
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class OptionalKeywordParameterNode < Node
5
+ def initialize(prism_node: nil, name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ @value = value
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :name, :value
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class OptionalParameterNode < Node
5
+ def initialize(prism_node: nil, name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ @value = value
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :name, :value
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class OrNode < Node
5
+ def initialize(prism_node: nil, left:, operator:, right:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @left = left
8
+ @operator = operator
9
+ @right = right
10
+ freeze
11
+ end
12
+
13
+ attr_accessor :left, :operator, :right
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ParametersNode < Node
5
+ def initialize(prism_node: nil, requireds:, optionals:, rest:, posts:, keywords:, keyword_rest:, block:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @requireds = requireds
8
+ @optionals = optionals
9
+ @rest = rest
10
+ @posts = posts
11
+ @keywords = keywords
12
+ @keyword_rest = keyword_rest
13
+ @block = block
14
+ freeze
15
+ end
16
+
17
+ attr_accessor :requireds, :optionals, :rest, :posts, :keywords, :keyword_rest, :block
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ParenthesesNode < Node
5
+ def initialize(prism_node: nil, body:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @body = body
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :body
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class PinnedExpressionNode < Node
5
+ def initialize(prism_node: nil, expression:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @expression = expression
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :expression
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class PinnedVariableNode < Node
5
+ def initialize(prism_node: nil, variable:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @variable = variable
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :variable
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class PostExecutionNode < Node
5
+ def initialize(prism_node: nil, statements:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @statements = statements
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :statements
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class PreExecutionNode < Node
5
+ def initialize(prism_node: nil, statements:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @statements = statements
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :statements
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ProgramNode < Node
5
+ def initialize(prism_node: nil, statements:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @statements = statements
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :statements
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RangeNode < Node
5
+ def initialize(prism_node: nil, left:, right:, exclude_end:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @left = left
8
+ @right = right
9
+ @exclude_end = exclude_end
10
+ freeze
11
+ end
12
+
13
+ attr_accessor :left, :right, :exclude_end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RationalNode < Node
5
+ def initialize(prism_node: nil, numerator:, denominator:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @numerator = numerator
8
+ @denominator = denominator
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :numerator, :denominator
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RedoNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RegularExpressionNode < Node
5
+ def initialize(prism_node: nil, unescaped:, ignore_case:, multi_line:, extended:, once:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @unescaped = unescaped
8
+ @ignore_case = ignore_case
9
+ @multi_line = multi_line
10
+ @extended = extended
11
+ @once = once
12
+ freeze
13
+ end
14
+
15
+ attr_accessor :unescaped, :ignore_case, :multi_line, :extended, :once
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RequiredKeywordParameterNode < Node
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :name
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RequiredParameterNode < Node
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :name
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RescueModifierNode < Node
5
+ def initialize(prism_node: nil, expression:, rescue_expression:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @expression = expression
8
+ @rescue_expression = rescue_expression
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :expression, :rescue_expression
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RescueNode < Node
5
+ def initialize(prism_node: nil, exceptions:, reference:, statements:, subsequent:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @exceptions = exceptions
8
+ @reference = reference
9
+ @statements = statements
10
+ @subsequent = subsequent
11
+ freeze
12
+ end
13
+
14
+ attr_accessor :exceptions, :reference, :statements, :subsequent
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RestParameterNode < Node
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @name = name
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :name
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RetryNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ReturnNode < Node
5
+ def initialize(prism_node: nil, arguments:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @arguments = arguments
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :arguments
12
+ end
13
+ end