Class: Expressive::List

Inherits:
Treetop::Runtime::SyntaxNode
  • Object
show all
Defined in:
lib/expressive.rb

Instance Method Summary collapse

Instance Method Details

#eval(scope) ⇒ Object



63
64
65
66
67
68
69
70
# File 'lib/expressive.rb', line 63

def eval(scope)
  first_elem = statements.first.eval(scope)
  if first_elem.is_a? Function
    first_elem.call(scope, statements[1..-1])
  else
    statements.map {|stat| stat.eval(scope) }
  end
end

#statementsObject



59
60
61
# File 'lib/expressive.rb', line 59

def statements
  elements[1].elements.map {|e| e.data }
end