refract 0.0.2 → 1.0.0.beta1

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 +40 -0
  5. data/lib/refract/converter.rb +1032 -0
  6. data/lib/refract/formatter.rb +1271 -0
  7. data/lib/refract/mutation_visitor.rb +899 -0
  8. data/lib/refract/nodes/alias_global_variable_node.rb +12 -0
  9. data/lib/refract/nodes/alias_method_node.rb +12 -0
  10. data/lib/refract/nodes/alternation_pattern_node.rb +12 -0
  11. data/lib/refract/nodes/and_node.rb +13 -0
  12. data/lib/refract/nodes/arguments_node.rb +11 -0
  13. data/lib/refract/nodes/array_node.rb +11 -0
  14. data/lib/refract/nodes/array_pattern_node.rb +14 -0
  15. data/lib/refract/nodes/assoc_node.rb +12 -0
  16. data/lib/refract/nodes/assoc_splat_node.rb +11 -0
  17. data/lib/refract/nodes/back_reference_read_node.rb +11 -0
  18. data/lib/refract/nodes/begin_node.rb +14 -0
  19. data/lib/refract/nodes/block_argument_node.rb +11 -0
  20. data/lib/refract/nodes/block_local_variable_node.rb +11 -0
  21. data/lib/refract/nodes/block_node.rb +12 -0
  22. data/lib/refract/nodes/block_parameter_node.rb +11 -0
  23. data/lib/refract/nodes/block_parameters_node.rb +12 -0
  24. data/lib/refract/nodes/break_node.rb +11 -0
  25. data/lib/refract/nodes/call_and_write_node.rb +13 -0
  26. data/lib/refract/nodes/call_node.rb +14 -0
  27. data/lib/refract/nodes/call_operator_write_node.rb +14 -0
  28. data/lib/refract/nodes/call_or_write_node.rb +13 -0
  29. data/lib/refract/nodes/call_target_node.rb +12 -0
  30. data/lib/refract/nodes/capture_pattern_node.rb +12 -0
  31. data/lib/refract/nodes/case_match_node.rb +13 -0
  32. data/lib/refract/nodes/case_node.rb +13 -0
  33. data/lib/refract/nodes/class_node.rb +13 -0
  34. data/lib/refract/nodes/class_variable_and_write_node.rb +12 -0
  35. data/lib/refract/nodes/class_variable_operator_write_node.rb +13 -0
  36. data/lib/refract/nodes/class_variable_or_write_node.rb +12 -0
  37. data/lib/refract/nodes/class_variable_read_node.rb +11 -0
  38. data/lib/refract/nodes/class_variable_target_node.rb +11 -0
  39. data/lib/refract/nodes/class_variable_write_node.rb +12 -0
  40. data/lib/refract/nodes/constant_and_write_node.rb +12 -0
  41. data/lib/refract/nodes/constant_operator_write_node.rb +13 -0
  42. data/lib/refract/nodes/constant_or_write_node.rb +12 -0
  43. data/lib/refract/nodes/constant_path.rb +12 -0
  44. data/lib/refract/nodes/constant_path_and_write_node.rb +12 -0
  45. data/lib/refract/nodes/constant_path_operator_write_node.rb +13 -0
  46. data/lib/refract/nodes/constant_path_or_write_node.rb +12 -0
  47. data/lib/refract/nodes/constant_path_target_node.rb +12 -0
  48. data/lib/refract/nodes/constant_path_write_node.rb +12 -0
  49. data/lib/refract/nodes/constant_read_node.rb +11 -0
  50. data/lib/refract/nodes/constant_target_node.rb +11 -0
  51. data/lib/refract/nodes/constant_write_node.rb +12 -0
  52. data/lib/refract/nodes/def_node.rb +14 -0
  53. data/lib/refract/nodes/defined_node.rb +11 -0
  54. data/lib/refract/nodes/else_node.rb +11 -0
  55. data/lib/refract/nodes/embedded_statements_node.rb +11 -0
  56. data/lib/refract/nodes/embedded_variable_node.rb +11 -0
  57. data/lib/refract/nodes/ensure_node.rb +11 -0
  58. data/lib/refract/nodes/false_node.rb +6 -0
  59. data/lib/refract/nodes/find_pattern_node.rb +14 -0
  60. data/lib/refract/nodes/flip_flop_node.rb +13 -0
  61. data/lib/refract/nodes/float_node.rb +11 -0
  62. data/lib/refract/nodes/for_node.rb +13 -0
  63. data/lib/refract/nodes/forwarding_arguments_node.rb +6 -0
  64. data/lib/refract/nodes/forwarding_parameter_node.rb +6 -0
  65. data/lib/refract/nodes/forwarding_super_node.rb +11 -0
  66. data/lib/refract/nodes/global_variable_and_write_node.rb +12 -0
  67. data/lib/refract/nodes/global_variable_operator_write_node.rb +13 -0
  68. data/lib/refract/nodes/global_variable_or_write_node.rb +12 -0
  69. data/lib/refract/nodes/global_variable_read_node.rb +11 -0
  70. data/lib/refract/nodes/global_variable_target_node.rb +11 -0
  71. data/lib/refract/nodes/global_variable_write_node.rb +12 -0
  72. data/lib/refract/nodes/hash_node.rb +11 -0
  73. data/lib/refract/nodes/hash_pattern_node.rb +12 -0
  74. data/lib/refract/nodes/if_node.rb +13 -0
  75. data/lib/refract/nodes/imaginary_node.rb +11 -0
  76. data/lib/refract/nodes/implicit_node.rb +11 -0
  77. data/lib/refract/nodes/implicit_rest_node.rb +6 -0
  78. data/lib/refract/nodes/in_node.rb +12 -0
  79. data/lib/refract/nodes/index_and_write_node.rb +14 -0
  80. data/lib/refract/nodes/index_operator_write_node.rb +15 -0
  81. data/lib/refract/nodes/index_or_write_node.rb +14 -0
  82. data/lib/refract/nodes/index_target_node.rb +13 -0
  83. data/lib/refract/nodes/instance_variable_and_write_node.rb +12 -0
  84. data/lib/refract/nodes/instance_variable_operator_write_node.rb +13 -0
  85. data/lib/refract/nodes/instance_variable_or_write_node.rb +12 -0
  86. data/lib/refract/nodes/instance_variable_read_node.rb +11 -0
  87. data/lib/refract/nodes/instance_variable_target_node.rb +11 -0
  88. data/lib/refract/nodes/instance_variable_write_node.rb +12 -0
  89. data/lib/refract/nodes/integer_node.rb +11 -0
  90. data/lib/refract/nodes/interpolated_match_last_line_node.rb +15 -0
  91. data/lib/refract/nodes/interpolated_regular_expression_node.rb +15 -0
  92. data/lib/refract/nodes/interpolated_string_node.rb +11 -0
  93. data/lib/refract/nodes/interpolated_symbol_node.rb +11 -0
  94. data/lib/refract/nodes/interpolated_x_string_node.rb +11 -0
  95. data/lib/refract/nodes/it_local_variable_read_node.rb +6 -0
  96. data/lib/refract/nodes/it_parameters_node.rb +6 -0
  97. data/lib/refract/nodes/keyword_hash_node.rb +11 -0
  98. data/lib/refract/nodes/keyword_rest_parameter_node.rb +11 -0
  99. data/lib/refract/nodes/lambda_node.rb +12 -0
  100. data/lib/refract/nodes/local_variable_and_write_node.rb +13 -0
  101. data/lib/refract/nodes/local_variable_operator_write_node.rb +14 -0
  102. data/lib/refract/nodes/local_variable_or_write_node.rb +13 -0
  103. data/lib/refract/nodes/local_variable_read_node.rb +11 -0
  104. data/lib/refract/nodes/local_variable_target_node.rb +11 -0
  105. data/lib/refract/nodes/local_variable_write_node.rb +12 -0
  106. data/lib/refract/nodes/match_last_line_node.rb +15 -0
  107. data/lib/refract/nodes/match_predicate_node.rb +12 -0
  108. data/lib/refract/nodes/match_required_node.rb +12 -0
  109. data/lib/refract/nodes/match_write_node.rb +12 -0
  110. data/lib/refract/nodes/missing_node.rb +6 -0
  111. data/lib/refract/nodes/module_node.rb +12 -0
  112. data/lib/refract/nodes/multi_target_node.rb +13 -0
  113. data/lib/refract/nodes/multi_write_node.rb +14 -0
  114. data/lib/refract/nodes/next_node.rb +11 -0
  115. data/lib/refract/nodes/nil_node.rb +6 -0
  116. data/lib/refract/nodes/no_keywords_parameter_node.rb +6 -0
  117. data/lib/refract/nodes/numbered_parameters_node.rb +6 -0
  118. data/lib/refract/nodes/numbered_reference_read_node.rb +11 -0
  119. data/lib/refract/nodes/optional_keyword_parameter_node.rb +12 -0
  120. data/lib/refract/nodes/optional_parameter_node.rb +12 -0
  121. data/lib/refract/nodes/or_node.rb +13 -0
  122. data/lib/refract/nodes/parameters_node.rb +17 -0
  123. data/lib/refract/nodes/parentheses_node.rb +11 -0
  124. data/lib/refract/nodes/pinned_expression_node.rb +11 -0
  125. data/lib/refract/nodes/pinned_variable_node.rb +11 -0
  126. data/lib/refract/nodes/post_execution_node.rb +11 -0
  127. data/lib/refract/nodes/pre_execution_node.rb +11 -0
  128. data/lib/refract/nodes/program_node.rb +11 -0
  129. data/lib/refract/nodes/range_node.rb +13 -0
  130. data/lib/refract/nodes/rational_node.rb +12 -0
  131. data/lib/refract/nodes/redo_node.rb +6 -0
  132. data/lib/refract/nodes/regular_expression_node.rb +15 -0
  133. data/lib/refract/nodes/required_keyword_parameter_node.rb +11 -0
  134. data/lib/refract/nodes/required_parameter_node.rb +11 -0
  135. data/lib/refract/nodes/rescue_modifier_node.rb +12 -0
  136. data/lib/refract/nodes/rescue_node.rb +14 -0
  137. data/lib/refract/nodes/rest_parameter_node.rb +11 -0
  138. data/lib/refract/nodes/retry_node.rb +6 -0
  139. data/lib/refract/nodes/return_node.rb +11 -0
  140. data/lib/refract/nodes/self_node.rb +6 -0
  141. data/lib/refract/nodes/shareable_constant_node.rb +11 -0
  142. data/lib/refract/nodes/singleton_class_node.rb +12 -0
  143. data/lib/refract/nodes/source_encoding_node.rb +6 -0
  144. data/lib/refract/nodes/source_file_node.rb +6 -0
  145. data/lib/refract/nodes/source_line_node.rb +6 -0
  146. data/lib/refract/nodes/splat_node.rb +11 -0
  147. data/lib/refract/nodes/statements_node.rb +11 -0
  148. data/lib/refract/nodes/string_node.rb +11 -0
  149. data/lib/refract/nodes/super_node.rb +12 -0
  150. data/lib/refract/nodes/symbol_node.rb +11 -0
  151. data/lib/refract/nodes/true_node.rb +6 -0
  152. data/lib/refract/nodes/undef_node.rb +11 -0
  153. data/lib/refract/nodes/unless_node.rb +13 -0
  154. data/lib/refract/nodes/until_node.rb +12 -0
  155. data/lib/refract/nodes/when_node.rb +12 -0
  156. data/lib/refract/nodes/while_node.rb +12 -0
  157. data/lib/refract/nodes/x_string_node.rb +11 -0
  158. data/lib/refract/nodes/yield_node.rb +11 -0
  159. data/lib/refract/version.rb +5 -0
  160. data/lib/refract/visitor.rb +689 -0
  161. data/lib/refract.rb +36 -50
  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,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class AliasGlobalVariableNode < Node
5
+ def initialize(new_name:, old_name:)
6
+ @new_name = new_name => GlobalVariableReadNode
7
+ @old_name = old_name => GlobalVariableReadNode
8
+ end
9
+
10
+ attr_accessor :new_name, :old_name
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class AliasMethodNode < Node
5
+ def initialize(new_name:, old_name:)
6
+ @new_name = new_name
7
+ @old_name = old_name
8
+ end
9
+
10
+ attr_accessor :new_name, :old_name
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class AlternationPatternNode < Node
5
+ def initialize(left:, right:)
6
+ @left = left
7
+ @right = right
8
+ end
9
+
10
+ attr_accessor :left, :right
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class AndNode < Node
5
+ def initialize(left:, operator:, right:)
6
+ @left = left
7
+ @operator = operator
8
+ @right = right
9
+ end
10
+
11
+ attr_accessor :left, :operator, :right
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ArgumentsNode < Node
5
+ def initialize(arguments:)
6
+ @arguments = arguments
7
+ end
8
+
9
+ attr_accessor :arguments
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ArrayNode < Node
5
+ def initialize(elements:)
6
+ @elements = elements
7
+ end
8
+
9
+ attr_accessor :elements
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ArrayPatternNode < Node
5
+ def initialize(constant:, requireds:, rest:, posts:)
6
+ @constant = constant
7
+ @requireds = requireds
8
+ @rest = rest
9
+ @posts = posts
10
+ end
11
+
12
+ attr_accessor :constant, :requireds, :rest, :posts
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class AssocNode < Node
5
+ def initialize(key:, value:)
6
+ @key = key
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :key, :value
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class AssocSplatNode < Node
5
+ def initialize(value:)
6
+ @value = value
7
+ end
8
+
9
+ attr_accessor :value
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class BackReferenceReadNode < Node
5
+ def initialize(name:)
6
+ @name = name
7
+ end
8
+
9
+ attr_accessor :name
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class BeginNode < Node
5
+ def initialize(statements:, rescue_clause:, else_clause:, ensure_clause:)
6
+ @statements = statements
7
+ @rescue_clause = rescue_clause
8
+ @else_clause = else_clause
9
+ @ensure_clause = ensure_clause
10
+ end
11
+
12
+ attr_accessor :statements, :rescue_clause, :else_clause, :ensure_clause
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class BlockArgumentNode < Node
5
+ def initialize(expression:)
6
+ @expression = expression
7
+ end
8
+
9
+ attr_accessor :expression
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class BlockLocalVariableNode < Node
5
+ def initialize(name:)
6
+ @name = name
7
+ end
8
+
9
+ attr_accessor :name
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class BlockNode < Node
5
+ def initialize(parameters:, body:)
6
+ @parameters = parameters
7
+ @body = body
8
+ end
9
+
10
+ attr_accessor :parameters, :body
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class BlockParameterNode < Node
5
+ def initialize(name:)
6
+ @name = name
7
+ end
8
+
9
+ attr_accessor :name
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class BlockParametersNode < Node
5
+ def initialize(parameters:, locals:)
6
+ @parameters = parameters
7
+ @locals = locals
8
+ end
9
+
10
+ attr_accessor :parameters, :locals
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class BreakNode < Node
5
+ def initialize(arguments:)
6
+ @arguments = arguments
7
+ end
8
+
9
+ attr_accessor :arguments
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class CallAndWriteNode < Node
5
+ def initialize(receiver:, read_name:, value:)
6
+ @receiver = receiver
7
+ @read_name = read_name
8
+ @value = value
9
+ end
10
+
11
+ attr_accessor :receiver, :read_name, :value
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class CallNode < Node
5
+ def initialize(receiver:, message:, arguments:, block:)
6
+ @receiver = receiver
7
+ @message = message
8
+ @arguments = arguments
9
+ @block = block
10
+ end
11
+
12
+ attr_accessor :receiver, :message, :arguments, :block
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class CallOperatorWriteNode < Node
5
+ def initialize(receiver:, read_name:, binary_operator:, value:)
6
+ @receiver = receiver
7
+ @read_name = read_name
8
+ @binary_operator = binary_operator
9
+ @value = value
10
+ end
11
+
12
+ attr_accessor :receiver, :read_name, :binary_operator, :value
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class CallOrWriteNode < Node
5
+ def initialize(receiver:, read_name:, value:)
6
+ @receiver = receiver
7
+ @read_name = read_name
8
+ @value = value
9
+ end
10
+
11
+ attr_accessor :receiver, :read_name, :value
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class CallTargetNode < Node
5
+ def initialize(receiver:, name:)
6
+ @receiver = receiver
7
+ @name = name
8
+ end
9
+
10
+ attr_accessor :receiver, :name
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class CapturePatternNode < Node
5
+ def initialize(value:, target:)
6
+ @value = value
7
+ @target = target
8
+ end
9
+
10
+ attr_accessor :value, :target
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class CaseMatchNode < Node
5
+ def initialize(predicate:, conditions:, else_clause:)
6
+ @predicate = predicate
7
+ @conditions = conditions
8
+ @else_clause = else_clause
9
+ end
10
+
11
+ attr_accessor :predicate, :conditions, :else_clause
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class CaseNode < Node
5
+ def initialize(predicate:, conditions:, else_clause:)
6
+ @predicate = predicate
7
+ @conditions = conditions
8
+ @else_clause = else_clause
9
+ end
10
+
11
+ attr_accessor :predicate, :conditions, :else_clause
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ClassNode < Node
5
+ def initialize(constant_path:, superclass:, body:)
6
+ @constant_path = constant_path
7
+ @superclass = superclass
8
+ @body = body
9
+ end
10
+
11
+ attr_accessor :constant_path, :superclass, :body
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ClassVariableAndWriteNode < Node
5
+ def initialize(name:, value:)
6
+ @name = name
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :name, :value
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ClassVariableOperatorWriteNode < Node
5
+ def initialize(name:, value:, binary_operator:)
6
+ @name = name
7
+ @value = value
8
+ @binary_operator = binary_operator
9
+ end
10
+
11
+ attr_accessor :name, :value, :binary_operator
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ClassVariableOrWriteNode < Node
5
+ def initialize(name:, value:)
6
+ @name = name
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :name, :value
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ClassVariableReadNode < Node
5
+ def initialize(name:)
6
+ @name = name
7
+ end
8
+
9
+ attr_accessor :name
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ClassVariableTargetNode < Node
5
+ def initialize(name:)
6
+ @name = name
7
+ end
8
+
9
+ attr_accessor :name
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ClassVariableWriteNode < Node
5
+ def initialize(name:, value:)
6
+ @name = name
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :name, :value
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantAndWriteNode < Node
5
+ def initialize(name:, value:)
6
+ @name = name
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :name, :value
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantOperatorWriteNode < Node
5
+ def initialize(name:, value:, binary_operator:)
6
+ @name = name
7
+ @value = value
8
+ @binary_operator = binary_operator
9
+ end
10
+
11
+ attr_accessor :name, :value, :binary_operator
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantOrWriteNode < Node
5
+ def initialize(name:, value:)
6
+ @name = name
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :name, :value
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantPath < Node
5
+ def initialize(parent:, name:)
6
+ @parent = parent
7
+ @name = name
8
+ end
9
+
10
+ attr_accessor :parent, :name
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantPathAndWriteNode < Node
5
+ def initialize(target:, value:)
6
+ @target = target
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :target, :value
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantPathOperatorWriteNode < Node
5
+ def initialize(target:, value:, binary_operator:)
6
+ @target = target
7
+ @value = value
8
+ @binary_operator = binary_operator
9
+ end
10
+
11
+ attr_accessor :target, :value, :binary_operator
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantPathOrWriteNode < Node
5
+ def initialize(target:, value:)
6
+ @target = target
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :target, :value
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantPathTargetNode < Node
5
+ def initialize(parent:, name:)
6
+ @parent = parent
7
+ @name = name
8
+ end
9
+
10
+ attr_accessor :parent, :name
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantPathWriteNode < Node
5
+ def initialize(target:, value:)
6
+ @target = target
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :target, :value
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantReadNode < Node
5
+ def initialize(name:)
6
+ @name = name
7
+ end
8
+
9
+ attr_accessor :name
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantTargetNode < Node
5
+ def initialize(name:)
6
+ @name = name
7
+ end
8
+
9
+ attr_accessor :name
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantWriteNode < Node
5
+ def initialize(name:, value:)
6
+ @name = name
7
+ @value = value
8
+ end
9
+
10
+ attr_accessor :name, :value
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class DefNode < Node
5
+ def initialize(name:, receiver:, parameters:, body:)
6
+ @name = name
7
+ @receiver = receiver
8
+ @parameters = parameters
9
+ @body = body
10
+ end
11
+
12
+ attr_accessor :name, :receiver, :parameters, :body
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class DefinedNode < Node
5
+ def initialize(value:)
6
+ @value = value
7
+ end
8
+
9
+ attr_accessor :value
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ElseNode < Node
5
+ def initialize(statements:)
6
+ @statements = statements
7
+ end
8
+
9
+ attr_accessor :statements
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class EmbeddedStatementsNode < Node
5
+ def initialize(statements:)
6
+ @statements = statements
7
+ end
8
+
9
+ attr_accessor :statements
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class EmbeddedVariableNode < Node
5
+ def initialize(variable:)
6
+ @variable = variable
7
+ end
8
+
9
+ attr_accessor :variable
10
+ end
11
+ end