Class: PreUnifier

Inherits:
SexpProcessor
  • Object
show all
Defined in:
lib/unified_ruby.rb

Instance Method Summary collapse

Constructor Details

#initializePreUnifier

Returns a new instance of PreUnifier.



353
354
355
356
# File 'lib/unified_ruby.rb', line 353

def initialize
  super
  @unsupported.delete :newline
end

Instance Method Details

#rewrite_call(exp) ⇒ Object



358
359
360
361
362
# File 'lib/unified_ruby.rb', line 358

def rewrite_call exp
  exp << s(:arglist) if exp.size < 4
  exp.last[0] = :arglist if exp.last.first == :array
  exp
end

#rewrite_fcall(exp) ⇒ Object



364
365
366
367
368
369
370
371
372
# File 'lib/unified_ruby.rb', line 364

def rewrite_fcall exp
  exp << s(:arglist) if exp.size < 3
  if exp[-1][0] == :array then
    has_splat = exp[-1].find { |s| Array === s && s.first == :splat }
    exp[-1] = s(:arglist, exp[-1]) if has_splat
    exp[-1][0] = :arglist
  end
  exp
end