class Opal::Rewriter

def delete(rewriter)

def delete(rewriter)
  list.delete(rewriter)
end

def disable

def disable
  @disabled = true
  yield
ensure
  @disabled = false
end

def disabled?

def disabled?
  @disabled if defined?(@disabled)
end

def initialize(sexp)

def initialize(sexp)
  @sexp = sexp
end

def list

def list
  @list ||= []
end

def process

def process
  return @sexp if self.class.disabled?
  self.class.list.each do |rewriter_class|
    rewriter = rewriter_class.new
    @sexp = rewriter.process(@sexp)
  end
  @sexp
end

def use(rewriter)

def use(rewriter)
  list << rewriter
end