diff src/luan/modules/Io.luan @ 1520:d9a5405a3102

try statement
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 21 Jun 2020 18:14:13 -0600
parents b765f146f4dc
children 81288d8b20a2
line wrap: on
line diff
--- a/src/luan/modules/Io.luan	Fri Jun 19 20:10:47 2020 -0600
+++ b/src/luan/modules/Io.luan	Sun Jun 21 18:14:13 2020 -0600
@@ -23,7 +23,6 @@
 local error = Luan.error
 local to_string = Luan.to_string or error()
 local type = Luan.type or error()
-local try = Luan.try or error()
 local ipairs = Luan.ipairs or error()
 local pairs = Luan.pairs or error()
 local values = Luan.values or error()
@@ -63,15 +62,12 @@
 
 function Io.output_to(out,fn)
 	local old_out = Io.stdout
-	return try {
-		function()
-			Io.stdout = out
-			return fn()
-		end
-		finally = function()
-			Io.stdout = old_out
-		end
-	}
+	try
+		Io.stdout = out
+		return fn()
+	finally
+		Io.stdout = old_out
+	end
 end
 
 local uri = Io.uri  -- make local
@@ -94,26 +90,20 @@
 	end
 	local env = {}
 	for line in console do
-		try {
-			function()
-				local fn
-				try {
-					function()
-						fn = load("return "..line,"stdin",env)
-					end
-					catch = function(e)
-						fn = load(line,"stdin",env)
-					end
-				}
-				local rtn = pack( fn() )
-				if rtn.n > 0 then
-					Io.print( unpack(rtn) )
-				end
+		try 
+			local fn
+			try
+				fn = load("return "..line,"stdin",env)
+			catch e
+				fn = load(line,"stdin",env)
 			end
-			catch = function(e)
-				Io.print(e)
+			local rtn = pack( fn() )
+			if rtn.n > 0 then
+				Io.print( unpack(rtn) )
 			end
-		}
+		catch e
+			Io.print(e)
+		end
 	end
 end