sass 3.3.0.alpha.149 → 3.3.0.alpha.162

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 (71) hide show
  1. data/REVISION +1 -1
  2. data/VERSION +1 -1
  3. data/VERSION_DATE +1 -1
  4. data/lib/sass/css.rb +1 -1
  5. data/lib/sass/engine.rb +4 -4
  6. data/lib/sass/environment.rb +1 -1
  7. data/lib/sass/exec.rb +1 -1
  8. data/lib/sass/media.rb +15 -15
  9. data/lib/sass/script.rb +32 -7
  10. data/lib/sass/script/css_lexer.rb +2 -2
  11. data/lib/sass/script/css_parser.rb +1 -1
  12. data/lib/sass/script/functions.rb +246 -232
  13. data/lib/sass/script/lexer.rb +24 -32
  14. data/lib/sass/script/parser.rb +84 -65
  15. data/lib/sass/script/tree.rb +14 -0
  16. data/lib/sass/script/tree/funcall.rb +242 -0
  17. data/lib/sass/script/{interpolation.rb → tree/interpolation.rb} +30 -13
  18. data/lib/sass/script/tree/list_literal.rb +65 -0
  19. data/lib/sass/script/tree/literal.rb +46 -0
  20. data/lib/sass/script/{node.rb → tree/node.rb} +10 -10
  21. data/lib/sass/script/{operation.rb → tree/operation.rb} +16 -27
  22. data/lib/sass/script/{string_interpolation.rb → tree/string_interpolation.rb} +4 -4
  23. data/lib/sass/script/{unary_operation.rb → tree/unary_operation.rb} +7 -8
  24. data/lib/sass/script/tree/variable.rb +56 -0
  25. data/lib/sass/script/value.rb +10 -0
  26. data/lib/sass/script/{arg_list.rb → value/arg_list.rb} +5 -20
  27. data/lib/sass/script/value/base.rb +222 -0
  28. data/lib/sass/script/{bool.rb → value/bool.rb} +2 -2
  29. data/lib/sass/script/{color.rb → value/color.rb} +22 -20
  30. data/lib/sass/script/{list.rb → value/list.rb} +15 -28
  31. data/lib/sass/script/{null.rb → value/null.rb} +3 -3
  32. data/lib/sass/script/{number.rb → value/number.rb} +19 -19
  33. data/lib/sass/script/{string.rb → value/string.rb} +7 -7
  34. data/lib/sass/scss/parser.rb +14 -4
  35. data/lib/sass/selector.rb +26 -26
  36. data/lib/sass/selector/abstract_sequence.rb +1 -1
  37. data/lib/sass/selector/simple.rb +6 -7
  38. data/lib/sass/source/position.rb +13 -0
  39. data/lib/sass/supports.rb +4 -4
  40. data/lib/sass/tree/comment_node.rb +3 -3
  41. data/lib/sass/tree/css_import_node.rb +7 -7
  42. data/lib/sass/tree/debug_node.rb +2 -2
  43. data/lib/sass/tree/directive_node.rb +2 -2
  44. data/lib/sass/tree/each_node.rb +2 -2
  45. data/lib/sass/tree/extend_node.rb +4 -4
  46. data/lib/sass/tree/for_node.rb +4 -4
  47. data/lib/sass/tree/function_node.rb +4 -4
  48. data/lib/sass/tree/media_node.rb +3 -3
  49. data/lib/sass/tree/mixin_def_node.rb +4 -4
  50. data/lib/sass/tree/mixin_node.rb +6 -6
  51. data/lib/sass/tree/prop_node.rb +23 -15
  52. data/lib/sass/tree/return_node.rb +2 -2
  53. data/lib/sass/tree/rule_node.rb +3 -3
  54. data/lib/sass/tree/variable_node.rb +2 -2
  55. data/lib/sass/tree/visitors/convert.rb +2 -2
  56. data/lib/sass/tree/visitors/deep_copy.rb +5 -5
  57. data/lib/sass/tree/visitors/perform.rb +7 -7
  58. data/lib/sass/tree/visitors/set_options.rb +6 -6
  59. data/lib/sass/tree/visitors/to_css.rb +1 -1
  60. data/lib/sass/tree/warn_node.rb +2 -2
  61. data/lib/sass/tree/while_node.rb +2 -2
  62. data/lib/sass/util.rb +2 -2
  63. data/test/sass/engine_test.rb +6 -6
  64. data/test/sass/functions_test.rb +20 -20
  65. data/test/sass/plugin_test.rb +2 -2
  66. data/test/sass/script_test.rb +38 -29
  67. data/test/test_helper.rb +1 -1
  68. metadata +23 -19
  69. data/lib/sass/script/funcall.rb +0 -238
  70. data/lib/sass/script/literal.rb +0 -221
  71. data/lib/sass/script/variable.rb +0 -58
@@ -71,7 +71,7 @@ module Sass
71
71
  #
72
72
  # @return [String]
73
73
  def to_s
74
- to_a.map {|e| e.is_a?(Sass::Script::Node) ? "\#{#{e.to_sass}}" : e}.join
74
+ to_a.map {|e| e.is_a?(Sass::Script::Tree::Node) ? "\#{#{e.to_sass}}" : e}.join
75
75
  end
76
76
 
77
77
  # Returns the specificity of the selector as an integer. The base is given
@@ -14,13 +14,12 @@ module Sass
14
14
  # @return [String, nil]
15
15
  attr_accessor :filename
16
16
 
17
- # Returns a representation of the node
18
- # as an array of strings and potentially {Sass::Script::Node}s
19
- # (if there's interpolation in the selector).
20
- # When the interpolation is resolved and the strings are joined together,
21
- # this will be the string representation of this node.
17
+ # Returns a representation of the node as an array of strings and
18
+ # potentially {Sass::Script::Tree::Node}s (if there's interpolation in the
19
+ # selector). When the interpolation is resolved and the strings are joined
20
+ # together, this will be the string representation of this node.
22
21
  #
23
- # @return [Array<String, Sass::Script::Node>]
22
+ # @return [Array<String, Sass::Script::Tree::Node>]
24
23
  def to_a
25
24
  Sass::Util.abstract(self)
26
25
  end
@@ -30,7 +29,7 @@ module Sass
30
29
  #
31
30
  # @return [String]
32
31
  def inspect
33
- to_a.map {|e| e.is_a?(Sass::Script::Node) ? "\#{#{e.to_sass}}" : e}.join
32
+ to_a.map {|e| e.is_a?(Sass::Script::Tree::Node) ? "\#{#{e.to_sass}}" : e}.join
34
33
  end
35
34
 
36
35
  # @see \{#inspect}
@@ -22,5 +22,18 @@ module Sass::Source
22
22
  def inspect
23
23
  "#{line.inspect}:#{offset.inspect}"
24
24
  end
25
+
26
+ # @param str [String] The string to move through.
27
+ # @return [Position] The source position after proceeding forward through
28
+ # `str`.
29
+ def after(str)
30
+ newlines = str.count("\n")
31
+ Position.new(line + newlines,
32
+ if newlines == 0
33
+ offset + str.length
34
+ else
35
+ str.length - str.rindex("\n") - 1
36
+ end)
37
+ end
25
38
  end
26
39
  end
@@ -135,7 +135,7 @@ module Sass::Supports
135
135
  class Declaration < Condition
136
136
  # The feature name.
137
137
  #
138
- # @param [Sass::Script::Node]
138
+ # @param [Sass::Script::Tree::Node]
139
139
  attr_accessor :name
140
140
 
141
141
  # The name of the feature after any SassScript has been resolved.
@@ -146,7 +146,7 @@ module Sass::Supports
146
146
 
147
147
  # The feature value.
148
148
  #
149
- # @param [Sass::Script::Node]
149
+ # @param [Sass::Script::Tree::Node]
150
150
  attr_accessor :value
151
151
 
152
152
  # The value of the feature after any SassScript has been resolved.
@@ -190,7 +190,7 @@ module Sass::Supports
190
190
  class Interpolation < Condition
191
191
  # The SassScript expression in the interpolation.
192
192
  #
193
- # @param [Sass::Script::Node]
193
+ # @param [Sass::Script::Tree::Node]
194
194
  attr_accessor :value
195
195
 
196
196
  # The value of the expression after it's been resolved.
@@ -205,7 +205,7 @@ module Sass::Supports
205
205
 
206
206
  def perform(env)
207
207
  val = value.perform(env)
208
- @resolved_value = val.is_a?(Sass::Script::String) ? val.value : val.to_s
208
+ @resolved_value = val.is_a?(Sass::Script::Value::String) ? val.value : val.to_s
209
209
  end
210
210
 
211
211
  def to_css
@@ -6,10 +6,10 @@ module Sass::Tree
6
6
  # @see Sass::Tree
7
7
  class CommentNode < Node
8
8
  # The text of the comment, not including `/*` and `*/`.
9
- # Interspersed with {Sass::Script::Node}s representing `#{}`-interpolation
9
+ # Interspersed with {Sass::Script::Tree::Node}s representing `#{}`-interpolation
10
10
  # if this is a loud comment.
11
11
  #
12
- # @return [Array<String, Sass::Script::Node>]
12
+ # @return [Array<String, Sass::Script::Tree::Node>]
13
13
  attr_accessor :value
14
14
 
15
15
  # The text of the comment
@@ -26,7 +26,7 @@ module Sass::Tree
26
26
  # @return [Symbol]
27
27
  attr_accessor :type
28
28
 
29
- # @param value [Array<String, Sass::Script::Node>] See \{#value}
29
+ # @param value [Array<String, Sass::Script::Tree::Node>] See \{#value}
30
30
  # @param type [Symbol] See \{#type}
31
31
  def initialize(value, type)
32
32
  @value = Sass::Util.with_extracted_values(value) {|str| normalize_indentation str}
@@ -6,7 +6,7 @@ module Sass::Tree
6
6
  # The URI being imported, either as a plain string or an interpolated
7
7
  # script string.
8
8
  #
9
- # @return [String, Sass::Script::Node]
9
+ # @return [String, Sass::Script::Tree::Node]
10
10
  attr_accessor :uri
11
11
 
12
12
  # The text of the URI being imported after any interpolated SassScript has
@@ -15,11 +15,11 @@ module Sass::Tree
15
15
  # @return [String]
16
16
  attr_accessor :resolved_uri
17
17
 
18
- # The media query for this rule, interspersed with {Sass::Script::Node}s
19
- # representing `#{}`-interpolation. Any adjacent strings will be merged
20
- # together.
18
+ # The media query for this rule, interspersed with
19
+ # {Sass::Script::Tree::Node}s representing `#{}`-interpolation. Any adjacent
20
+ # strings will be merged together.
21
21
  #
22
- # @return [Array<String, Sass::Script::Node>]
22
+ # @return [Array<String, Sass::Script::Tree::Node>]
23
23
  attr_accessor :query
24
24
 
25
25
  # The media query for this rule, without any unresolved interpolation. It's
@@ -28,8 +28,8 @@ module Sass::Tree
28
28
  # @return [Sass::Media::QueryList]
29
29
  attr_accessor :resolved_query
30
30
 
31
- # @param uri [String, Sass::Script::Node] See \{#uri}
32
- # @param query [Array<String, Sass::Script::Node>] See \{#query}
31
+ # @param uri [String, Sass::Script::Tree::Node] See \{#uri}
32
+ # @param query [Array<String, Sass::Script::Tree::Node>] See \{#query}
33
33
  def initialize(uri, query = [])
34
34
  @uri = uri
35
35
  @query = query
@@ -5,10 +5,10 @@ module Sass
5
5
  # @see Sass::Tree
6
6
  class DebugNode < Node
7
7
  # The expression to print.
8
- # @return [Script::Node]
8
+ # @return [Script::Tree::Node]
9
9
  attr_accessor :expr
10
10
 
11
- # @param expr [Script::Node] The expression to print
11
+ # @param expr [Script::Tree::Node] The expression to print
12
12
  def initialize(expr)
13
13
  @expr = expr
14
14
  super()
@@ -11,7 +11,7 @@ module Sass::Tree
11
11
  class DirectiveNode < Node
12
12
  # The text of the directive, `@` and all, with interpolation included.
13
13
  #
14
- # @return [Array<String, Sass::Script::Node>]
14
+ # @return [Array<String, Sass::Script::Tree::Node>]
15
15
  attr_accessor :value
16
16
 
17
17
  # The text of the directive after any interpolated SassScript has been resolved.
@@ -20,7 +20,7 @@ module Sass::Tree
20
20
  # @return [String]
21
21
  attr_accessor :resolved_value
22
22
 
23
- # @param value [Array<String, Sass::Script::Node>] See \{#value}
23
+ # @param value [Array<String, Sass::Script::Tree::Node>] See \{#value}
24
24
  def initialize(value)
25
25
  @value = value
26
26
  super()
@@ -10,11 +10,11 @@ module Sass::Tree
10
10
  attr_reader :var
11
11
 
12
12
  # The parse tree for the list.
13
- # @param [Script::Node]
13
+ # @param [Script::Tree::Node]
14
14
  attr_accessor :list
15
15
 
16
16
  # @param var [String] The name of the loop variable
17
- # @param list [Script::Node] The parse tree for the list
17
+ # @param list [Script::Tree::Node] The parse tree for the list
18
18
  def initialize(var, list)
19
19
  @var = var
20
20
  @list = list
@@ -11,10 +11,10 @@ module Sass::Tree
11
11
  # @return [Selector::CommaSequence]
12
12
  attr_accessor :resolved_selector
13
13
 
14
- # The CSS selector to extend, interspersed with {Sass::Script::Node}s
14
+ # The CSS selector to extend, interspersed with {Sass::Script::Tree::Node}s
15
15
  # representing `#{}`-interpolation.
16
16
  #
17
- # @return [Array<String, Sass::Script::Node>]
17
+ # @return [Array<String, Sass::Script::Tree::Node>]
18
18
  attr_accessor :selector
19
19
 
20
20
  # The extended selector source range.
@@ -27,9 +27,9 @@ module Sass::Tree
27
27
  # @return [Boolean]
28
28
  def optional?; @optional; end
29
29
 
30
- # @param selector [Array<String, Sass::Script::Node>]
30
+ # @param selector [Array<String, Sass::Script::Tree::Node>]
31
31
  # The CSS selector to extend,
32
- # interspersed with {Sass::Script::Node}s
32
+ # interspersed with {Sass::Script::Tree::Node}s
33
33
  # representing `#{}`-interpolation.
34
34
  # @param optional [Boolean] See \{#optional}
35
35
  # @param selector_source_range [Sass::Source::Range] The extended selector source range.
@@ -10,11 +10,11 @@ module Sass::Tree
10
10
  attr_reader :var
11
11
 
12
12
  # The parse tree for the initial expression.
13
- # @return [Script::Node]
13
+ # @return [Script::Tree::Node]
14
14
  attr_accessor :from
15
15
 
16
16
  # The parse tree for the final expression.
17
- # @return [Script::Node]
17
+ # @return [Script::Tree::Node]
18
18
  attr_accessor :to
19
19
 
20
20
  # Whether to include `to` in the loop or stop just before.
@@ -22,8 +22,8 @@ module Sass::Tree
22
22
  attr_reader :exclusive
23
23
 
24
24
  # @param var [String] See \{#var}
25
- # @param from [Script::Node] See \{#from}
26
- # @param to [Script::Node] See \{#to}
25
+ # @param from [Script::Tree::Node] See \{#from}
26
+ # @param to [Script::Tree::Node] See \{#to}
27
27
  # @param exclusive [Boolean] See \{#exclusive}
28
28
  def initialize(var, from, to, exclusive)
29
29
  @var = var
@@ -12,17 +12,17 @@ module Sass
12
12
  # containing the variable for argument and the parse tree for
13
13
  # the default value of the argument
14
14
  #
15
- # @return [Array<Script::Node>]
15
+ # @return [Array<Script::Tree::Node>]
16
16
  attr_accessor :args
17
17
 
18
18
  # The splat argument for this function, if one exists.
19
19
  #
20
- # @return [Script::Node?]
20
+ # @return [Script::Tree::Node?]
21
21
  attr_accessor :splat
22
22
 
23
23
  # @param name [String] The function name
24
- # @param args [Array<(Script::Node, Script::Node)>] The arguments for the function.
25
- # @param splat [Script::Node] See \{#splat}
24
+ # @param args [Array<(Script::Tree::Node, Script::Tree::Node)>] The arguments for the function.
25
+ # @param splat [Script::Tree::Node] See \{#splat}
26
26
  def initialize(name, args, splat)
27
27
  @name = name
28
28
  @args = args
@@ -8,11 +8,11 @@ module Sass::Tree
8
8
  class MediaNode < DirectiveNode
9
9
  # TODO: parse and cache the query immediately if it has no dynamic elements
10
10
 
11
- # The media query for this rule, interspersed with {Sass::Script::Node}s
11
+ # The media query for this rule, interspersed with {Sass::Script::Tree::Node}s
12
12
  # representing `#{}`-interpolation. Any adjacent strings will be merged
13
13
  # together.
14
14
  #
15
- # @return [Array<String, Sass::Script::Node>]
15
+ # @return [Array<String, Sass::Script::Tree::Node>]
16
16
  attr_accessor :query
17
17
 
18
18
  # The media query for this rule, without any unresolved interpolation. It's
@@ -27,7 +27,7 @@ module Sass::Tree
27
27
  # @see RuleNode#group_end
28
28
  attr_accessor :group_end
29
29
 
30
- # @param query [Array<String, Sass::Script::Node>] See \{#query}
30
+ # @param query [Array<String, Sass::Script::Tree::Node>] See \{#query}
31
31
  def initialize(query)
32
32
  @query = query
33
33
  @tabs = 0
@@ -12,12 +12,12 @@ module Sass
12
12
  # Each element is a tuple containing the variable for argument
13
13
  # and the parse tree for the default value of the argument.
14
14
  #
15
- # @return [Array<(Script::Node, Script::Node)>]
15
+ # @return [Array<(Script::Tree::Node, Script::Tree::Node)>]
16
16
  attr_accessor :args
17
17
 
18
18
  # The splat argument for this mixin, if one exists.
19
19
  #
20
- # @return [Script::Node?]
20
+ # @return [Script::Tree::Node?]
21
21
  attr_accessor :splat
22
22
 
23
23
  # Whether the mixin uses `@content`. Set during the nesting check phase.
@@ -25,8 +25,8 @@ module Sass
25
25
  attr_accessor :has_content
26
26
 
27
27
  # @param name [String] The mixin name
28
- # @param args [Array<(Script::Node, Script::Node)>] See \{#args}
29
- # @param splat [Script::Node] See \{#splat}
28
+ # @param args [Array<(Script::Tree::Node, Script::Tree::Node)>] See \{#args}
29
+ # @param splat [Script::Tree::Node] See \{#splat}
30
30
  def initialize(name, args, splat)
31
31
  @name = name
32
32
  @args = args
@@ -12,22 +12,22 @@ module Sass::Tree
12
12
  attr_reader :name
13
13
 
14
14
  # The arguments to the mixin.
15
- # @return [Array<Script::Node>]
15
+ # @return [Array<Script::Tree::Node>]
16
16
  attr_accessor :args
17
17
 
18
18
  # A hash from keyword argument names to values.
19
- # @return [{String => Script::Node}]
19
+ # @return [{String => Script::Tree::Node}]
20
20
  attr_accessor :keywords
21
21
 
22
22
  # The splat argument for this mixin, if one exists.
23
23
  #
24
- # @return [Script::Node?]
24
+ # @return [Script::Tree::Node?]
25
25
  attr_accessor :splat
26
26
 
27
27
  # @param name [String] The name of the mixin
28
- # @param args [Array<Script::Node>] See \{#args}
29
- # @param splat [Script::Node] See \{#splat}
30
- # @param keywords [{String => Script::Node}] See \{#keywords}
28
+ # @param args [Array<Script::Tree::Node>] See \{#args}
29
+ # @param splat [Script::Tree::Node] See \{#splat}
30
+ # @param keywords [{String => Script::Tree::Node}] See \{#keywords}
31
31
  def initialize(name, args, keywords, splat)
32
32
  @name = name
33
33
  @args = args
@@ -4,11 +4,11 @@ module Sass::Tree
4
4
  # @see Sass::Tree
5
5
  class PropNode < Node
6
6
  # The name of the property,
7
- # interspersed with {Sass::Script::Node}s
7
+ # interspersed with {Sass::Script::Tree::Node}s
8
8
  # representing `#{}`-interpolation.
9
9
  # Any adjacent strings will be merged together.
10
10
  #
11
- # @return [Array<String, Sass::Script::Node>]
11
+ # @return [Array<String, Sass::Script::Tree::Node>]
12
12
  attr_accessor :name
13
13
 
14
14
  # The name of the property
@@ -20,7 +20,7 @@ module Sass::Tree
20
20
 
21
21
  # The value of the property.
22
22
  #
23
- # @return [Sass::Script::Node]
23
+ # @return [Sass::Script::Tree::Node]
24
24
  attr_accessor :value
25
25
 
26
26
  # The value of the property
@@ -52,8 +52,8 @@ module Sass::Tree
52
52
  # @return [Sass::Source::Range]
53
53
  attr_accessor :value_source_range
54
54
 
55
- # @param name [Array<String, Sass::Script::Node>] See \{#name}
56
- # @param value [Sass::Script::Node] See \{#value}
55
+ # @param name [Array<String, Sass::Script::Tree::Node>] See \{#name}
56
+ # @param value [Sass::Script::Tree::Node] See \{#value}
57
57
  # @param prop_syntax [Symbol] `:new` if this property uses `a: b`-style syntax,
58
58
  # `:old` if it uses `:a b`-style syntax
59
59
  def initialize(name, value, prop_syntax)
@@ -80,7 +80,13 @@ module Sass::Tree
80
80
  #
81
81
  # @return [String] The message
82
82
  def pseudo_class_selector_message
83
- return "" if @prop_syntax == :new || !value.is_a?(Sass::Script::String) || !value.value.empty?
83
+ if @prop_syntax == :new ||
84
+ !value.is_a?(Sass::Script::Tree::Literal) ||
85
+ !value.value.is_a?(Sass::Script::Value::String) ||
86
+ !value.value.value.empty?
87
+ return ""
88
+ end
89
+
84
90
  "\nIf #{declaration.dump} should be a selector, use \"\\#{declaration}\" instead."
85
91
  end
86
92
 
@@ -127,34 +133,36 @@ module Sass::Tree
127
133
  private
128
134
 
129
135
  def val_to_sass_comma(node, opts)
130
- return node unless node.is_a?(Sass::Script::Operation)
136
+ return node unless node.is_a?(Sass::Script::Tree::Operation)
131
137
  return val_to_sass_concat(node, opts) unless node.operator == :comma
132
138
 
133
- Sass::Script::Operation.new(
139
+ Sass::Script::Tree::Operation.new(
134
140
  val_to_sass_concat(node.operand1, opts),
135
141
  val_to_sass_comma(node.operand2, opts),
136
142
  node.operator)
137
143
  end
138
144
 
139
145
  def val_to_sass_concat(node, opts)
140
- return node unless node.is_a?(Sass::Script::Operation)
146
+ return node unless node.is_a?(Sass::Script::Tree::Operation)
141
147
  return val_to_sass_div(node, opts) unless node.operator == :space
142
148
 
143
- Sass::Script::Operation.new(
149
+ Sass::Script::Tree::Operation.new(
144
150
  val_to_sass_div(node.operand1, opts),
145
151
  val_to_sass_concat(node.operand2, opts),
146
152
  node.operator)
147
153
  end
148
154
 
149
155
  def val_to_sass_div(node, opts)
150
- unless node.is_a?(Sass::Script::Operation) && node.operator == :div &&
151
- node.operand1.is_a?(Sass::Script::Number) &&
152
- node.operand2.is_a?(Sass::Script::Number) &&
153
- (!node.operand1.original || !node.operand2.original)
156
+ unless node.is_a?(Sass::Script::Tree::Operation) && node.operator == :div &&
157
+ node.operand1.is_a?(Sass::Script::Tree::Literal) &&
158
+ node.operand1.value.is_a?(Sass::Script::Value::Number) &&
159
+ node.operand2.is_a?(Sass::Script::Tree::Literal) &&
160
+ node.operand2.value.is_a?(Sass::Script::Value::Number) &&
161
+ (!node.operand1.value.original || !node.operand2.value.original)
154
162
  return node
155
163
  end
156
164
 
157
- Sass::Script::String.new("(#{node.to_sass(opts)})")
165
+ Sass::Script::Value::String.new("(#{node.to_sass(opts)})")
158
166
  end
159
167
 
160
168
  end
@@ -5,10 +5,10 @@ module Sass
5
5
  # @see Sass::Tree
6
6
  class ReturnNode < Node
7
7
  # The expression to return.
8
- # @type [Script::Node]
8
+ # @type [Script::Tree::Node]
9
9
  attr_accessor :expr
10
10
 
11
- # @param expr [Script::Node] The expression to return
11
+ # @param expr [Script::Tree::Node] The expression to return
12
12
  def initialize(expr)
13
13
  @expr = expr
14
14
  super()