class EleetScript::Nodes

Public Instance Methods

<<(node) click to toggle source
# File lib/lang/nodes.rb, line 27
def <<(node)
  nodes << node
  self
end
eval(context) click to toggle source
# File lib/lang/interpreter.rb, line 97
def eval(context)
  return_value = nil
  nodes.each do |node|
    if node.kind_of?(ReturnNode)
      returned
      break return_value = node.eval(context)
    elsif node.kind_of?(NextNode)
      nexted
      break
    else
      return_value = node.eval(context)
    end
    if node.returnable? && node.returned?
      returned
      node.reset_returned
      break
    elsif node.nextable? && node.nexted?
      node.reset_nexted
      nexted
      break
    end
  end
  return_value || context.es_nil
end
to_s(level = 0) click to toggle source
# File lib/lang/nodes.rb, line 32
def to_s(level = 0)
  str = "#{spaces(level)}<EleetScript::Nodes\n"
  nodes.each do |node|
    str += node.to_s(level + 1)
  end
  str + "#{spaces(level)}>\n"
end