Class: Luoma::ArrayLiteral
- Inherits:
-
Expression
- Object
- Expression
- Luoma::ArrayLiteral
- Defined in:
- lib/luoma/expression.rb,
sig/luoma/expression.rbs
Instance Attribute Summary
Attributes inherited from Expression
Instance Method Summary collapse
- #children ⇒ Object
- #evaluate(context) ⇒ Object
-
#initialize(token, items) ⇒ ArrayLiteral
constructor
A new instance of ArrayLiteral.
- #to_s ⇒ Object
- #with(token) ⇒ self
Methods inherited from Expression
Constructor Details
#initialize(token, items) ⇒ ArrayLiteral
Returns a new instance of ArrayLiteral.
903 904 905 906 |
# File 'lib/luoma/expression.rb', line 903 def initialize(token, items) super(token) @items = items end |
Instance Method Details
#children ⇒ Object
923 924 925 |
# File 'lib/luoma/expression.rb', line 923 def children @items end |
#evaluate(context) ⇒ Object
909 910 911 912 913 914 915 916 917 918 919 920 921 |
# File 'lib/luoma/expression.rb', line 909 def evaluate(context) result = [] #: Array[untyped] @items.each do |item| if item.is_a?(Spread) result.concat(context.env.to_a(item.expr.evaluate(context), context)) else result << item.evaluate(context) end end result end |
#to_s ⇒ Object
928 929 930 |
# File 'lib/luoma/expression.rb', line 928 def to_s "[#{@items.join(", ")}]" end |