def prepare_line(expr, column)
set_expr_and_postfix!(expr, column){|c| /^.{#{c}}/ }
@prefix = expr
case expr
when /^\$\w*$/
__prepare_line 'nil', 'global_variables', '%n'
when /^@@\w*$/
__prepare_line 'nil', 'Module === self ? class_variables : self.class.class_variables', '%n'
when /^@\w*$/
__prepare_line 'nil', 'instance_variables', '%n'
when /^([A-Z].*)::([^.]*)$/
@prefix = $2
__prepare_line $1, "#$1.constants | #$1.methods(true)",
%Q[#$1.constants + #$1.methods(true).#{methods_map_code($1)}]
when /^[A-Z]\w*$/
__prepare_line 'nil', 'Module.constants', '%n'
when /^(.*::.+)\.(.*)$/
@prefix = $2
__prepare_line $1, "#$1.methods",
%Q[%n.#{methods_map_code($1)}]
when /^(::.+)::(.*)$/
@prefix = $2
__prepare_line $1, "#$1.constants | #$1.methods",
%Q[#$1.constants + #$1.methods.#{methods_map_code($1)}]
when /^::(.*)/
@prefix = $1
__prepare_line 'nil', 'Object.constants', '%n'
when /^(:[^:.]*)$/
__prepare_line 'nil', 'Symbol.all_symbols.map{|s| ":" + s.id2name}', '%n'
when /\.([^.]*)$/
@prefix = $1
recv = Regexp.last_match.pre_match
__prepare_line recv, "(#{recv}).methods(true)",
%Q[%n.#{methods_map_code(recv)}]
else
__prepare_line 'self', "methods | private_methods | local_variables | self.class.constants",
%Q[(methods | private_methods).#{methods_map_code('self')} + local_variables | self.class.constants]
end
end