class TPPlus::Nodes::ForNode

Public Class Methods

new(var_node, initial_value_node, final_value_node, block) click to toggle source
# File lib/tp_plus/nodes/for_node.rb, line 4
def initialize(var_node, initial_value_node, final_value_node, block)
  @var_node           = var_node
  @initial_value_node = initial_value_node
  @final_value_node   = final_value_node
  @block              = block.flatten.reject {|n| n.is_a?(TerminatorNode) }
end

Public Instance Methods

block(context) click to toggle source
# File lib/tp_plus/nodes/for_node.rb, line 11
def block(context)
  @s ||= @block.inject("") {|s,n| s << "#{n.eval(context)} ;\n" }
end
eval(context) click to toggle source
# File lib/tp_plus/nodes/for_node.rb, line 15
def eval(context)
  "FOR #{@var_node.eval(context)}=#{@initial_value_node.eval(context)} TO #{@final_value_node.eval(context)} ;\n#{block(context)}ENDFOR"
end