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