16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/lolcode/vm.rb', line 16
def run(line)
puts "[INFO] Orig line: #{line}" if self.verbose
(start; return) if line =~ /^HAI\b.*/
(halt; return) if line =~ /^KTHXBYE\b.*/
return unless started?
ruby_line = line.split(',').collect do |l|
translate(l)
end.join(';')
puts "[INFO] Ruby code: #{ruby_line}" if self.verbose
self.buffer << ruby_line
return if open_block?
res = nil
begin
puts "[INFO] Eval code: #{self.buffer}" if self.verbose
res = eval self.buffer
reset_buffer
rescue
puts "[ERROR] Exec Error: #{line}"
end
$stdout.flush
$stderr.flush
res
end
|