Class: TPPlus::Nodes::ForNode
- Inherits:
-
Object
- Object
- TPPlus::Nodes::ForNode
- Defined in:
- lib/tp_plus/nodes/for_node.rb
Instance Method Summary collapse
- #block(context) ⇒ Object
- #eval(context) ⇒ Object
-
#initialize(var_node, initial_value_node, final_value_node, block) ⇒ ForNode
constructor
A new instance of ForNode.
Constructor Details
#initialize(var_node, initial_value_node, final_value_node, block) ⇒ ForNode
Returns a new instance of ForNode.
4 5 6 7 8 9 |
# 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 |
Instance Method Details
#block(context) ⇒ Object
11 12 13 |
# 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) ⇒ Object
15 16 17 |
# 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 |