lib/nydp/runner.rb in nydp-0.2.3 vs lib/nydp/runner.rb in nydp-0.2.5
- old
+ new
@@ -48,26 +48,17 @@
end
def compile_and_eval expr
begin
vm.thread Pair.new(Compiler.compile(expr, Nydp::NIL), Nydp::NIL)
- rescue Exception => e
- new_msg = "failed to eval #{expr.inspect}\nerror was #{Nydp.indent_text e.message}"
- raise e.class, new_msg, e.backtrace
+ rescue StandardError => e
+ raise Nydp::Error, "failed to eval #{expr.inspect}"
end
end
- def quote expr
- Pair.from_list [@quote, expr]
- end
-
- def precompile expr
- Pair.from_list [@precompile, quote(expr)]
- end
-
def pre_compile expr
- compile_and_eval(precompile(expr))
+ compile_and_eval(Pair.from_list [@precompile, Pair.from_list([@quote, expr])])
end
def evaluate expr
compile_and_eval(pre_compile(expr))
end
@@ -83,39 +74,20 @@
def print val
@printer.puts val.inspect if @printer
end
- def handle_run_error e
- puts e.message
- e.backtrace.each do |b|
- puts b
- end
- end
-
def run
Nydp.apply_function ns, :"script-run", :"script-start", name
res = Nydp::NIL
begin
while !@tokens.finished
expr = @parser.expression(@tokens)
- unless expr.nil?
- begin
- print(res = evaluate(expr))
- rescue Exception => e
- handle_run_error e
- end
- end
+ print(res = evaluate(expr)) unless expr.nil?
end
ensure
Nydp.apply_function ns, :"script-run", :"script-end", name
end
res
- end
- end
-
- class ExplodeRunner < Runner
- def handle_run_error e
- raise e
end
end
end