class NameTracker

Public Class Methods

new() click to toggle source
# File lib/normalize_ast.rb, line 7
def initialize
  @var_hash = Hash.new { |h,k| h[k] = "var"+h.size.to_s }
  @spt_hash = Hash.new { |h,k| h[k] = "*vr"+h.size.to_s }
  @bar_hash = Hash.new { |h,k| h[k] = "&vr"+h.size.to_s }
  @sym_hash = Hash.new { |h,k| h[k] = ("sym"+h.size.to_s).to_sym }
  @str_hash = Hash.new { |h,k| h[k] = "str"+h.size.to_s }
  @flt_hash = Hash.new { |h,k| h[k] = 0.0+h.size.to_f }
  @int_hash = Hash.new { |h,k| h[k] = 0+h.size }
  @mapping = {
    :str => @str_hash,
    :sym => @sym_hash,
    :arg => @var_hash,
    :float => @flt_hash,
    :int => @int_hash,
    :var => @var_hash,
    :restarg => @spt_hash,
    :blockarg => @bar_hash
  }
end

Public Instance Methods

rename(type,id) click to toggle source
# File lib/normalize_ast.rb, line 26
def rename(type,id)
  @mapping[type][id]
end