class Yadriggy::ArrayLiteral
Array literal.
Attributes
elements[R]
@return [Array<ASTnode>] the array elements.
Public Class Methods
new(sexp)
click to toggle source
# File lib/yadriggy/ast.rb, line 432 def initialize(sexp) if sexp[1].nil? @elements = [] elsif is_percent_literal(sexp[1]) @elements = sexp[1].map do |e| StringInterpolation.new([:string_literal, [:string_content] + e]) end else @elements = to_nodes(sexp[1]) end add_children(@elements) end
tag()
click to toggle source
# File lib/yadriggy/ast.rb, line 430 def self.tag() :array end
Public Instance Methods
accept(evaluator)
click to toggle source
A method for Visitor pattern. @param [Eval] evaluator the visitor of Visitor pattern. @return [void]
# File lib/yadriggy/ast.rb, line 448 def accept(evaluator) evaluator.array(self) end
const_value()
click to toggle source
# File lib/yadriggy/ast_value.rb, line 279 def const_value() elements.map {|e| e.const_value } end
value()
click to toggle source
# File lib/yadriggy/ast_value.rb, line 271 def value() elements.map {|e| e.value } end
value_in_class(klass)
click to toggle source
# File lib/yadriggy/ast_value.rb, line 275 def value_in_class(klass) elements.map {|e| e.value_in_class(klass) } end
Private Instance Methods
is_percent_literal(sexp)
click to toggle source
# File lib/yadriggy/ast.rb, line 454 def is_percent_literal(sexp) sexp.is_a?(Array) && sexp.size > 0 && sexp.all? do |e| e.is_a?(Array) && e.all? {|ee| ee.is_a?(Array) } end end