Class: Duby::AST::JRubyAst::OrNode

Inherits:
Object
  • Object
show all
Defined in:
lib/duby/transform.rb

Instance Method Summary collapse

Instance Method Details

#transform(transformer, parent) ⇒ Object



739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
# File 'lib/duby/transform.rb', line 739

def transform(transformer, parent)
  Body.new(parent, position) do |block|
    temp = transformer.tmp
    [
      LocalAssignment.new(block, first_node.position, temp) do |l|
        [transformer.transform(first_node, l)]
      end,
      If.new(parent, position) do |iff|
        [
          Condition.new(iff, first_node.position) do |cond|
            [Local.new(cond, first_node.position, temp)]
          end,
          Local.new(iff, first_node.position, temp),
          transformer.transform(second_node, iff)
        ]
      end
    ]
  end
end