mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
320e99d8dd
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
42 lines
728 B
Ruby
42 lines
728 B
Ruby
line = ''
|
|
indent=0
|
|
$stdout.sync = TRUE
|
|
print "ruby> "
|
|
while TRUE
|
|
l = gets
|
|
unless l
|
|
break if line == ''
|
|
else
|
|
line = line + l
|
|
if l =~ /,\s*$/
|
|
print "ruby| "
|
|
next
|
|
end
|
|
if l =~ /^\s*(class|module|def|if|case|while|for|begin)\b[^_]/
|
|
indent += 1
|
|
end
|
|
if l =~ /^\s*end\b[^_]/
|
|
indent -= 1
|
|
end
|
|
if l =~ /\{\s*(\|.*\|)?\s*$/
|
|
indent += 1
|
|
end
|
|
if l =~ /^\s*\}/
|
|
indent -= 1
|
|
end
|
|
if indent > 0
|
|
print "ruby| "
|
|
next
|
|
end
|
|
end
|
|
begin
|
|
print eval(line).inspect, "\n"
|
|
rescue ScriptError, StandardError
|
|
$! = 'exception raised' unless $!
|
|
print "ERR: ", $!, "\n"
|
|
end
|
|
break if not l
|
|
line = ''
|
|
print "ruby> "
|
|
end
|
|
print "\n"
|