diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-01-16 12:13:05 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-01-16 12:13:05 +0000 |
| commit | 99d0354e89aefdb6373dbeb22506216b8790a0bd (patch) | |
| tree | b3c086e437cab449f90ba637710daed0ddfec4c4 /sample/eval.rb | |
| parent | 502e7547b5c274c51365d11fdfe0e69ee9aa5a52 (diff) | |
| download | ruby-99d0354e89aefdb6373dbeb22506216b8790a0bd.tar.gz ruby-99d0354e89aefdb6373dbeb22506216b8790a0bd.tar.xz ruby-99d0354e89aefdb6373dbeb22506216b8790a0bd.zip | |
Initial revision
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sample/eval.rb')
| -rw-r--r-- | sample/eval.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/sample/eval.rb b/sample/eval.rb new file mode 100644 index 000000000..216bf8ca3 --- /dev/null +++ b/sample/eval.rb @@ -0,0 +1,42 @@ +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 + $! = 'exception raised' unless $! + print "ERR: ", $!, "\n" + end + break if not l + line = '' + print "ruby> " +end +print "\n" |
