def to_s
case sexp_type
when :string_literal, :xstring_literal, :string_content, :const_ref, :symbol_literal, :symbol,
:args_add_block, :var_ref, :vcall, :var_field,
:@ident, :@tstring_content, :@const, :@ivar, :@kw, :@gvar, :@cvar
self[1].to_s
when :string_add
if s(:string_content) == self[1]
self[2].to_s
else
self[1].to_s
end
when :args_add
if s(:args_new) == self[1]
self[2].to_s
else
self[1].to_s
end
when :qwords_add
self[2].to_s
when :word_add
self[2].to_s
when :const_path_ref
"#{self[1]}::#{self[2]}"
when :@label
self[1].to_s[0..-2]
when :aref
"#{self[1]}[#{self[2]}]"
when :call, :field
"#{self.receiver}.#{self.message}"
when :top_const_ref
"::#{self[1]}"
else
""
end
end