def process_defs exp
name = exp.method_name
if node_type? exp[1], :self
if @current_class
target = @current_class.name
elsif @current_module
target = @current_module.name
else
target = nil
end
else
target = class_name exp[1]
end
@current_method = name
res = Sexp.new :defs, target, name, exp.formal_args, *process_all!(exp.body)
res.line(exp.line)
@current_method = nil
if @current_class
@current_class.add_method @visibility, name, res, @file_name
elsif @current_module
@current_module.add_method @visibility, name, res, @file_name
end
res
end