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 MatchRequiredNode < Node
5
+ def initialize(value:, pattern:)
6
+ @value = value
7
+ @pattern = pattern
8
+ end
9
+
10
+ attr_accessor :value, :pattern
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MatchWriteNode < Node
5
+ def initialize(call:, targets:)
6
+ @call = call
7
+ @targets = targets
8
+ end
9
+
10
+ attr_accessor :call, :targets
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MissingNode < Node
5
+ end
6
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ModuleNode < Node
5
+ def initialize(constant_path:, body:)
6
+ @constant_path = constant_path
7
+ @body = body
8
+ end
9
+
10
+ attr_accessor :constant_path, :body
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MultiTargetNode < Node
5
+ def initialize(lefts:, rest:, rights:)
6
+ @lefts = lefts
7
+ @rest = rest
8
+ @rights = rights
9
+ end
10
+
11
+ attr_accessor :lefts, :rest, :rights
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class MultiWriteNode < Node
5
+ def initialize(lefts:, rest:, rights:, value:)
6
+ @lefts = lefts
7
+ @rest = rest
8
+ @rights = rights
9
+ @value = value
10
+ end
11
+
12
+ attr_accessor :lefts, :rest, :rights, :value
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NextNode < Node
5
+ def initialize(arguments:)
6
+ @arguments = arguments
7
+ end
8
+
9
+ attr_accessor :arguments
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NilNode < Node
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NoKeywordsParameterNode < Node
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NumberedParametersNode < Node
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class NumberedReferenceReadNode < Node
5
+ def initialize(number:)
6
+ @number = number
7
+ end
8
+
9
+ attr_accessor :number
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class OptionalKeywordParameterNode < 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 OptionalParameterNode < 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 OrNode < 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,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ParametersNode < Node
5
+ def initialize(requireds:, optionals:, rest:, posts:, keywords:, keyword_rest:, block:)
6
+ @requireds = requireds
7
+ @optionals = optionals
8
+ @rest = rest
9
+ @posts = posts
10
+ @keywords = keywords
11
+ @keyword_rest = keyword_rest
12
+ @block = block
13
+ end
14
+
15
+ attr_accessor :requireds, :optionals, :rest, :posts, :keywords, :keyword_rest, :block
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ParenthesesNode < Node
5
+ def initialize(body:)
6
+ @body = body
7
+ end
8
+
9
+ attr_accessor :body
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class PinnedExpressionNode < 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 PinnedVariableNode < Node
5
+ def initialize(variable:)
6
+ @variable = variable
7
+ end
8
+
9
+ attr_accessor :variable
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class PostExecutionNode < 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 PreExecutionNode < 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 ProgramNode < Node
5
+ def initialize(statements:)
6
+ @statements = statements
7
+ end
8
+
9
+ attr_reader :statements
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RangeNode < 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,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RationalNode < Node
5
+ def initialize(numerator:, denominator:)
6
+ @numerator = numerator
7
+ @denominator = denominator
8
+ end
9
+
10
+ attr_accessor :numerator, :denominator
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RedoNode < Node
5
+ end
6
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RegularExpressionNode < 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,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RequiredKeywordParameterNode < 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 RequiredParameterNode < 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 RescueModifierNode < Node
5
+ def initialize(expression:, rescue_expression:)
6
+ @expression = expression
7
+ @rescue_expression = rescue_expression
8
+ end
9
+
10
+ attr_accessor :expression, :rescue_expression
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RescueNode < Node
5
+ def initialize(exceptions:, reference:, statements:, subsequent:)
6
+ @exceptions = exceptions
7
+ @reference = reference
8
+ @statements = statements
9
+ @subsequent = subsequent
10
+ end
11
+
12
+ attr_accessor :exceptions, :reference, :statements, :subsequent
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RestParameterNode < Node
5
+ def initialize(name:)
6
+ @name = name
7
+ end
8
+
9
+ attr_accessor :name
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class RetryNode < Node
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ReturnNode < Node
5
+ def initialize(arguments:)
6
+ @arguments = arguments
7
+ end
8
+
9
+ attr_accessor :arguments
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SelfNode < Node
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ShareableConstantNode < Node
5
+ def initialize(write:)
6
+ @write = write
7
+ end
8
+
9
+ attr_accessor :write
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SingletonClassNode < Node
5
+ def initialize(expression:, body:)
6
+ @expression = expression
7
+ @body = body
8
+ end
9
+
10
+ attr_accessor :expression, :body
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SourceEncodingNode < Node
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SourceFileNode < Node
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SourceLineNode < Node
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SplatNode < 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 StatementsNode < Node
5
+ def initialize(body:)
6
+ @body = body
7
+ end
8
+
9
+ attr_accessor :body
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class StringNode < Node
5
+ def initialize(unescaped:)
6
+ @unescaped = unescaped
7
+ end
8
+
9
+ attr_accessor :unescaped
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SuperNode < Node
5
+ def initialize(arguments:, block:)
6
+ @arguments = arguments
7
+ @block = block
8
+ end
9
+
10
+ attr_accessor :arguments, :block
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SymbolNode < Node
5
+ def initialize(unescaped:)
6
+ @unescaped = unescaped
7
+ end
8
+
9
+ attr_accessor :unescaped
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class TrueNode < Node
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class UndefNode < Node
5
+ def initialize(names:)
6
+ @names = names
7
+ end
8
+
9
+ attr_accessor :names
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class UnlessNode < Node
5
+ def initialize(predicate:, statements:, else_clause:)
6
+ @predicate = predicate
7
+ @statements = statements
8
+ @else_clause = else_clause
9
+ end
10
+
11
+ attr_accessor :predicate, :statements, :else_clause
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class UntilNode < Node
5
+ def initialize(predicate:, statements:)
6
+ @predicate = predicate
7
+ @statements = statements
8
+ end
9
+
10
+ attr_accessor :predicate, :statements
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class WhenNode < Node
5
+ def initialize(conditions:, statements:)
6
+ @conditions = conditions
7
+ @statements = statements
8
+ end
9
+
10
+ attr_accessor :conditions, :statements
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class WhileNode < Node
5
+ def initialize(predicate:, statements:)
6
+ @predicate = predicate
7
+ @statements = statements
8
+ end
9
+
10
+ attr_accessor :predicate, :statements
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class XStringNode < Node
5
+ def initialize(unescaped:)
6
+ @unescaped = unescaped
7
+ end
8
+
9
+ attr_accessor :unescaped
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class YieldNode < Node
5
+ def initialize(arguments:)
6
+ @arguments = arguments
7
+ end
8
+
9
+ attr_accessor :arguments
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ VERSION = "1.0.0.beta1"
5
+ end