def el4r_ruby2lisp(obj)
case obj
when nil, false; "nil"
when true; "t"
when String; El4r.lisp_dump_string(obj)
when Regexp; El4r.lisp_dump_string(el4r_conv_regexp(obj))
when Symbol; "'#{El4r.name_rb2el(obj.to_s)}"
when Proc; el4r_rubyproc_to_lambda(&obj)
when Integer
(ELISP_INTEGER_RANGE === obj) or
raise(RangeError,
"Integer #{obj} exceed elisp limitation (#{ELISP_INTEGER_RANGE})")
obj.to_s
when Numeric; obj.to_s
when Array; "(list #{el4r_args_to_lispseq(*obj)})"
when ELObject; obj.to_lisp
when ELExpression; obj.expression
else; el4r_rubyobj_stock.obj2lisp(obj)
end
end