Mercurial Hosting > luan
diff src/luan/Luan.java @ 1424:9ab267b9427c
better load_file()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 22 Nov 2019 22:58:39 -0700 |
parents | 27efb1fcbcb5 |
children | d7644b21b128 |
line wrap: on
line diff
--- a/src/luan/Luan.java Tue Nov 19 17:42:11 2019 -0700 +++ b/src/luan/Luan.java Fri Nov 22 22:58:39 2019 -0700 @@ -1,6 +1,7 @@ package luan; -import java.lang.reflect.Array; +import java.lang.reflect.Array; +import java.io.IOException; import java.util.List; import java.util.ArrayList; import java.util.Map; @@ -11,9 +12,9 @@ import java.util.Set; import goodjava.logging.Logger; import goodjava.logging.LoggerFactory; -import luan.modules.BasicLuan; import luan.modules.JavaLuan; import luan.modules.PackageLuan; +import luan.modules.IoLuan; import luan.modules.logging.LuanLogger; import luan.impl.LuanCompiler; @@ -171,15 +172,22 @@ // static public static void main(String[] args) throws LuanException { - doFile( "classpath:luan/cmd_line.luan", args ); - } - - public static void doFile(String uri,String... args) throws LuanException { - Luan luan = new Luan(); - LuanFunction fn = (LuanFunction)BasicLuan.load_file(luan,uri); + Luan luan = new Luan(); + LuanFunction fn = loadClasspath(luan,"luan/cmd_line.luan"); fn.call((Object[])args); } - + + public static LuanFunction loadClasspath(Luan luan,String classpath) + throws LuanException + { + try { + String src = IoLuan.classpath(luan,classpath).read_text(); + return luan.load(src,"classpath:"+classpath); + } catch(IOException e) { + throw new RuntimeException(e); + } + } + public static Object first(Object obj) { if( !(obj instanceof Object[]) ) return obj;