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,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class EnsureNode < Node
5
+ def initialize(statements:)
6
+ @statements = statements
7
+ end
8
+
9
+ attr_accessor :statements
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class FalseNode < Node
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class FindPatternNode < Node
5
+ def initialize(constant:, left:, requireds:, right:)
6
+ @constant = constant
7
+ @left = left
8
+ @requireds = requireds
9
+ @right = right
10
+ end
11
+
12
+ attr_accessor :constant, :left, :requireds, :right
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class FlipFlopNode < Node
5
+ def initialize(left:, right:, exclude_end:)
6
+ @left = left
7
+ @right = right
8
+ @exclude_end = exclude_end
9
+ end
10
+
11
+ attr_accessor :left, :right, :exclude_end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class FloatNode < Node
5
+ def initialize(value:)
6
+ @value = value
7
+ end
8
+
9
+ attr_accessor :value
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ForNode < Node
5
+ def initialize(index:, collection:, statements:)
6
+ @index = index
7
+ @collection = collection
8
+ @statements = statements
9
+ end
10
+
11
+ attr_accessor :index, :collection, :statements
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ForwardingArgumentsNode < Node
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ForwardingParameterNode < Node
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ForwardingSuperNode < Node
5
+ def initialize(block:)
6
+ @block = block
7
+ end
8
+
9
+ attr_accessor :block
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class GlobalVariableAndWriteNode < 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 GlobalVariableOperatorWriteNode < 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 GlobalVariableOrWriteNode < 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 GlobalVariableReadNode < 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 GlobalVariableTargetNode < 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 GlobalVariableWriteNode < 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 HashNode < Node
5
+ def initialize(elements:)
6
+ @elements = elements
7
+ end
8
+
9
+ attr_accessor :elements
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class HashPatternNode < Node
5
+ def initialize(elements:, rest:)
6
+ @elements = elements
7
+ @rest = rest
8
+ end
9
+
10
+ attr_accessor :elements, :rest
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class IfNode < Node
5
+ def initialize(predicate:, statements:, subsequent:)
6
+ @predicate = predicate
7
+ @statements = statements
8
+ @subsequent = subsequent
9
+ end
10
+
11
+ attr_accessor :predicate, :statements, :subsequent
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ImaginaryNode < Node
5
+ def initialize(numeric:)
6
+ @numeric = numeric
7
+ end
8
+
9
+ attr_accessor :numeric
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ImplicitNode < Node
5
+ def initialize(value:)
6
+ @value = value
7
+ end
8
+
9
+ attr_accessor :value
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ImplicitRestNode < Node
5
+ end
6
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class InNode < Node
5
+ def initialize(pattern:, statements:)
6
+ @pattern = pattern
7
+ @statements = statements
8
+ end
9
+
10
+ attr_accessor :pattern, :statements
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class IndexAndWriteNode < Node
5
+ def initialize(receiver:, arguments:, block:, value:)
6
+ @receiver = receiver
7
+ @arguments = arguments
8
+ @block = block
9
+ @value = value
10
+ end
11
+
12
+ attr_accessor :receiver, :arguments, :block, :value
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class IndexOperatorWriteNode < Node
5
+ def initialize(receiver:, arguments:, block:, binary_operator:, value:)
6
+ @receiver = receiver
7
+ @arguments = arguments
8
+ @block = block
9
+ @binary_operator = binary_operator
10
+ @value = value
11
+ end
12
+
13
+ attr_accessor :receiver, :arguments, :block, :binary_operator, :value
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class IndexOrWriteNode < Node
5
+ def initialize(receiver:, arguments:, block:, value:)
6
+ @receiver = receiver
7
+ @arguments = arguments
8
+ @block = block
9
+ @value = value
10
+ end
11
+
12
+ attr_accessor :receiver, :arguments, :block, :value
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class IndexTargetNode < Node
5
+ def initialize(receiver:, arguments:, block:)
6
+ @receiver = receiver
7
+ @arguments = arguments
8
+ @block = block
9
+ end
10
+
11
+ attr_reader :receiver, :arguments, :block
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class InstanceVariableAndWriteNode < 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 InstanceVariableOperatorWriteNode < 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 InstanceVariableOrWriteNode < 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 InstanceVariableReadNode < 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 InstanceVariableTargetNode < 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 InstanceVariableWriteNode < 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 IntegerNode < Node
5
+ def initialize(value:)
6
+ @value = value
7
+ end
8
+
9
+ attr_accessor :value
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class InterpolatedMatchLastLineNode < Node
5
+ def initialize(parts:, ignore_case:, multi_line:, extended:, once:)
6
+ @parts = parts
7
+ @ignore_case = ignore_case
8
+ @multi_line = multi_line
9
+ @extended = extended
10
+ @once = once
11
+ end
12
+
13
+ attr_accessor :parts, :ignore_case, :multi_line, :extended, :once
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class InterpolatedRegularExpressionNode < Node
5
+ def initialize(parts:, ignore_case:, multi_line:, extended:, once:)
6
+ @parts = parts
7
+ @ignore_case = ignore_case
8
+ @multi_line = multi_line
9
+ @extended = extended
10
+ @once = once
11
+ end
12
+
13
+ attr_accessor :parts, :ignore_case, :multi_line, :extended, :once
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class InterpolatedStringNode < Node
5
+ def initialize(parts:)
6
+ @parts = parts
7
+ end
8
+
9
+ attr_accessor :parts
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class InterpolatedSymbolNode < Node
5
+ def initialize(parts:)
6
+ @parts = parts
7
+ end
8
+
9
+ attr_accessor :parts
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class InterpolatedXStringNode < Node
5
+ def initialize(parts:)
6
+ @parts = parts
7
+ end
8
+
9
+ attr_accessor :parts
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ItLocalVariableReadNode < Node
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ItParametersNode < Node
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class KeywordHashNode < Node
5
+ def initialize(elements:)
6
+ @elements = elements
7
+ end
8
+
9
+ attr_accessor :elements
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class KeywordRestParameterNode < 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 LambdaNode < 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,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableAndWriteNode < Node
5
+ def initialize(name:, value:, depth:)
6
+ @name = name
7
+ @value = value
8
+ @depth = depth
9
+ end
10
+
11
+ attr_accessor :name, :value, :depth
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableOperatorWriteNode < Node
5
+ def initialize(name:, value:, binary_operator:, depth:)
6
+ @name = name
7
+ @value = value
8
+ @binary_operator = binary_operator
9
+ @depth = depth
10
+ end
11
+
12
+ attr_accessor :name, :value, :binary_operator, :depth
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableOrWriteNode < Node
5
+ def initialize(name:, value:, depth:)
6
+ @name = name
7
+ @value = value
8
+ @depth = depth
9
+ end
10
+
11
+ attr_accessor :name, :value, :depth
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class LocalVariableReadNode < 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 LocalVariableTargetNode < 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 LocalVariableWriteNode < 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,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MatchLastLineNode < Node
5
+ def initialize(unescaped:, ignore_case:, multi_line:, extended:, once:)
6
+ @unescaped = unescaped
7
+ @ignore_case = ignore_case
8
+ @multi_line = multi_line
9
+ @extended = extended
10
+ @once = once
11
+ end
12
+
13
+ attr_accessor :unescaped, :ignore_case, :multi_line, :extended, :once
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MatchPredicateNode < Node
5
+ def initialize(value:, pattern:)
6
+ @value = value
7
+ @pattern = pattern
8
+ end
9
+
10
+ attr_accessor :value, :pattern
11
+ end
12
+ end