Method: Delorean::ListComprehension#rewrite

Defined in:
lib/delorean/nodes.rb

#rewrite(context) ⇒ Object



734
735
736
737
738
739
740
741
742
743
744
745
# File 'lib/delorean/nodes.rb', line 734

def rewrite(context)
  res = ["(#{e1.rewrite(context)})"]
  unpack_vars = args.check(context)
  unpack_vars.each { |vname| context.parse_define_var(vname) }
  args_str = args.rewrite(context)

  res << ".select{|#{args_str}|(#{ifexp.e3.rewrite(context)})}" if
    defined?(ifexp.e3)
  res << ".map{|#{args_str}| (#{e2.rewrite(context)}) }"
  unpack_vars.each { |vname| context.parse_undef_var(vname) }
  res.sum
end