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