Mercurial Hosting > luan
changeset 130:0594c132888b
cleanup
git-svn-id: https://luan-java.googlecode.com/svn/trunk@131 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Tue, 10 Jun 2014 02:43:40 +0000 |
parents | 486a0641bca4 |
children | 15a8e6588f3c |
files | src/luan/LuanBit.java src/luan/LuanJavaFunction.java src/luan/LuanState.java src/luan/interp/ForStmt.java src/luan/lib/BasicLib.java src/luan/lib/HttpLib.java src/luan/lib/IoLib.java src/luan/lib/JavaLib.java src/luan/lib/PackageLib.java src/luan/lib/PickleClient.java src/luan/lib/PickleCon.java src/luan/lib/StringLib.java src/luan/lib/TableLib.java src/luan/lib/ThreadLib.java src/luan/lib/Utils.java src/luan/tools/CmdLine.java src/luan/tools/WebRun.java src/luan/tools/WebShell.java |
diffstat | 18 files changed, 104 insertions(+), 83 deletions(-) [+] |
line wrap: on
line diff
--- a/src/luan/LuanBit.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/LuanBit.java Tue Jun 10 02:43:40 2014 +0000 @@ -16,10 +16,6 @@ return new LuanException(this,msg); } - public Object call(LuanFunction fn,String fnName) throws LuanException { - return call(fn,fnName,LuanFunction.NOTHING); - } - public Object call(LuanFunction fn,String fnName,Object[] args) throws LuanException { List<StackTraceElement> stackTrace = luan.stackTrace; stackTrace.add( new StackTraceElement(el,fnName) );
--- a/src/luan/LuanJavaFunction.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/LuanJavaFunction.java Tue Jun 10 02:43:40 2014 +0000 @@ -76,7 +76,7 @@ throw (Error)cause; if( cause instanceof LuanException ) throw (LuanException)cause; - throw luan.JAVA.exception(cause); + throw luan.exception(cause); } catch(InstantiationException e) { throw new RuntimeException(e); } @@ -109,10 +109,10 @@ String expected = paramType.getSimpleName(); if( arg==null ) { if( paramType.isPrimitive() ) - throw luan.JAVA.exception("bad argument #"+(i+1-start)+" ("+expected+" expected, got nil)"); + throw luan.exception("bad argument #"+(i+1-start)+" ("+expected+" expected, got nil)"); } else { String got = arg.getClass().getSimpleName(); - throw luan.JAVA.exception("bad argument #"+(i+1-start)+" ("+expected+" expected, got "+got+")"); + throw luan.exception("bad argument #"+(i+1-start)+" ("+expected+" expected, got "+got+")"); } } }
--- a/src/luan/LuanState.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/LuanState.java Tue Jun 10 02:43:40 2014 +0000 @@ -20,7 +20,45 @@ public abstract class LuanState implements DeepCloneable<LuanState> { - public final LuanBit JAVA = bit(LuanElement.JAVA); + private final LuanBit JAVA = bit(LuanElement.JAVA); + + public LuanException exception(Object msg) { + return JAVA.exception(msg); + } + + public Object call(LuanFunction fn) throws LuanException { + return call(fn,null,LuanFunction.NOTHING); + } + + public Object call(LuanFunction fn,String fnName) throws LuanException { + return call(fn,fnName,LuanFunction.NOTHING); + } + + public Object call(LuanFunction fn,Object[] args) throws LuanException { + return call(fn,null,args); + } + + public Object call(LuanFunction fn,String fnName,Object[] args) throws LuanException { + return JAVA.call(fn,fnName,args); + } + + public LuanFunction checkFunction(Object obj) throws LuanException { + return JAVA.checkFunction(obj); + } + + public String toString(Object obj) throws LuanException { + return JAVA.toString(obj); + } + + public String repr(Object obj) throws LuanException { + return JAVA.repr(obj); + } + + public boolean isLessThan(Object o1,Object o2) throws LuanException { + return JAVA.isLessThan(o1,o2); + } + + private LuanTable global; private LuanTable loaded; @@ -120,9 +158,9 @@ } } - public final Object eval(String cmd,String sourceName,boolean allowExpr) throws LuanException { - LuanFunction fn = BasicLib.load(this,cmd,sourceName,true,allowExpr); - return JAVA.call(fn,null); + public final Object eval(String cmd) throws LuanException { + LuanFunction fn = BasicLib.load(this,cmd,"eval",true,true); + return call(fn); }
--- a/src/luan/interp/ForStmt.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/interp/ForStmt.java Tue Jun 10 02:43:40 2014 +0000 @@ -27,7 +27,7 @@ String name = iterExpr.se().text(); try { while(true) { - Object vals = bit.call(iter,name); + Object vals = bit.call(iter,name,LuanFunction.NOTHING); if( vals==null ) break; if( vals instanceof Object[] ) {
--- a/src/luan/lib/BasicLib.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/BasicLib.java Tue Jun 10 02:43:40 2014 +0000 @@ -43,7 +43,6 @@ add( global, "load", LuanState.class, String.class, String.class, Boolean.class, Boolean.class ); add( global, "load_file", LuanState.class, String.class ); add( global, "pairs", LuanState.class, LuanTable.class ); -// add( global, "print", LuanState.class, new Object[0].getClass() ); add( global, "range", LuanState.class, Double.TYPE, Double.TYPE, Double.class ); add( global, "raw_equal", Object.class, Object.class ); add( global, "raw_get", LuanTable.class, Object.class ); @@ -66,19 +65,7 @@ private static void add(LuanTable t,String method,Class<?>... parameterTypes) throws NoSuchMethodException { t.put( method, new LuanJavaFunction(BasicLib.class.getMethod(method,parameterTypes),null) ); } -/* - public static void print(LuanState luan,Object... args) throws LuanException { - LuanFunction write = (LuanFunction)luan.get("Io.stdout.write"); - List<Object> list = new ArrayList<Object>(); - for( int i=0; i<args.length; i++ ) { - if( i > 0 ) - list.add("\t"); - list.add(args[i]); - } - list.add("\n"); - write.call(luan,list.toArray()); - } -*/ + public static String type(Object obj) { return Luan.type(obj); } @@ -99,7 +86,7 @@ String src = fileName==null ? Utils.readAll(new InputStreamReader(System.in)) : new IoLib.LuanFile(fileName).read_text(); return load(luan,src,fileName,false,false); } catch(IOException e) { - throw luan.JAVA.exception(e); + throw luan.exception(e); } } @@ -108,18 +95,18 @@ String src = new IoLib.LuanUrl(IoLib.java_resource_to_url(path)).read_text(); return load(luan,src,path,false,false); } catch(IOException e) { - throw luan.JAVA.exception(e); + throw luan.exception(e); } } public static Object do_file(LuanState luan,String fileName) throws LuanException { LuanFunction fn = load_file(luan,fileName); - return luan.JAVA.call(fn,null); + return luan.call(fn); } public static Object do_java_resource(LuanState luan,String path) throws LuanException { LuanFunction fn = load_java_resource(luan,path); - return luan.JAVA.call(fn,null); + return luan.call(fn); } private static LuanFunction pairs(final Iterator<Map.Entry<Object,Object>> iter) { @@ -174,7 +161,7 @@ LuanTable t = (LuanTable)v; return t.length(); } - throw luan.JAVA.exception( "bad argument #1 to 'raw_len' (table or string expected)" ); + throw luan.exception( "bad argument #1 to 'raw_len' (table or string expected)" ); } public static Number to_number(Object e,Integer base) { @@ -182,11 +169,11 @@ } public static String to_string(LuanState luan,Object v) throws LuanException { - return luan.JAVA.toString(v); + return luan.toString(v); } public static void error(LuanState luan,Object msg) throws LuanException { - throw luan.JAVA.exception(msg); + throw luan.exception(msg); } public static Object assert_(LuanState luan,Object v,String msg) throws LuanException { @@ -194,7 +181,7 @@ return v; if( msg == null ) msg = "assertion failed!"; - throw luan.JAVA.exception( msg ); + throw luan.exception( msg ); } public static String assert_string(LuanState luan,String v) throws LuanException { @@ -218,18 +205,18 @@ public static Object assert_nil(LuanState luan,Object v) throws LuanException { if( v != null ) - throw luan.JAVA.exception("bad argument #1 (nil expected, got "+Luan.type(v)+")"); + throw luan.exception("bad argument #1 (nil expected, got "+Luan.type(v)+")"); return v; } public static String repr(LuanState luan,Object v) throws LuanException { - return luan.JAVA.repr(v); + return luan.repr(v); } public static LuanFunction range(LuanState luan,final double from,final double to,Double stepV) throws LuanException { final double step = stepV==null ? 1.0 : stepV; if( step == 0.0 ) - throw luan.JAVA.exception("bad argument #3 (step may not be zero)"); + throw luan.exception("bad argument #3 (step may not be zero)"); return new LuanFunction() { double v = from;
--- a/src/luan/lib/HttpLib.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/HttpLib.java Tue Jun 10 02:43:40 2014 +0000 @@ -28,7 +28,7 @@ PackageLib.require(luan,NAME); Object fn = luan.get(HttpLib.FN_NAME); if( !(fn instanceof LuanFunction) ) - throw luan.JAVA.exception( "function '"+HttpLib.FN_NAME+"' not defined" ); + throw luan.exception( "function '"+HttpLib.FN_NAME+"' not defined" ); } public static void service(LuanState luan,HttpServletRequest request,HttpServletResponse response) @@ -46,7 +46,7 @@ throw new RuntimeException(e); } - luan.JAVA.call(fn,FN_NAME); + luan.call(fn,FN_NAME); } private final HttpServletRequest request;
--- a/src/luan/lib/IoLib.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/IoLib.java Tue Jun 10 02:43:40 2014 +0000 @@ -121,7 +121,7 @@ public void write(LuanState luan,Object... args) throws LuanException { for( Object obj : args ) { - out.print( luan.JAVA.toString(obj) ); + out.print( luan.toString(obj) ); } } @@ -137,7 +137,7 @@ public void write(LuanState luan,Object... args) throws LuanException, IOException { for( Object obj : args ) { - out.write( luan.JAVA.toString(obj) ); + out.write( luan.toString(obj) ); } } @@ -185,7 +185,7 @@ try { if( args.length > 0 ) { if( args.length > 1 || !"close".equals(args[0]) ) - throw luan.JAVA.exception( "the only argument allowed is 'close'" ); + throw luan.exception( "the only argument allowed is 'close'" ); in.close(); return null; } @@ -194,7 +194,7 @@ in.close(); return rtn; } catch(IOException e) { - throw luan.JAVA.exception(e); + throw luan.exception(e); } } }; @@ -208,7 +208,7 @@ try { if( args.length > 0 ) { if( args.length > 1 || !"close".equals(args[0]) ) - throw luan.JAVA.exception( "the only argument allowed is 'close'" ); + throw luan.exception( "the only argument allowed is 'close'" ); in.close(); return null; } @@ -218,7 +218,7 @@ } return a; } catch(IOException e) { - throw luan.JAVA.exception(e); + throw luan.exception(e); } } }; @@ -292,7 +292,7 @@ out.close(); return; } - throw luan.JAVA.exception( "bad argument #1 to 'write' (string or binary expected)" ); + throw luan.exception( "bad argument #1 to 'write' (string or binary expected)" ); } public LuanTable text_writer() throws IOException { @@ -416,13 +416,13 @@ try { if( args.length > 0 ) { if( args.length > 1 || !"close".equals(args[0]) ) - throw luan.JAVA.exception( "the only argument allowed is 'close'" ); + throw luan.exception( "the only argument allowed is 'close'" ); ss.close(); return null; } return new LuanSocket(ss.accept()).table(); } catch(IOException e) { - throw luan.JAVA.exception(e); + throw luan.exception(e); } } };
--- a/src/luan/lib/JavaLib.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/JavaLib.java Tue Jun 10 02:43:40 2014 +0000 @@ -114,7 +114,7 @@ } } } - throw luan.JAVA.exception("invalid member '"+key+"' for: "+obj); + throw luan.exception("invalid member '"+key+"' for: "+obj); } Class cls = obj.getClass(); if( cls.isArray() ) { @@ -125,7 +125,7 @@ if( i != null ) { return Array.get(obj,i); } - throw luan.JAVA.exception("invalid member '"+key+"' for java array: "+obj); + throw luan.exception("invalid member '"+key+"' for java array: "+obj); } if( key instanceof String ) { String name = (String)key; @@ -138,7 +138,7 @@ } } } -// throw luan.JAVA.exception("invalid member '"+key+"' for java object: "+obj); +// throw luan.exception("invalid member '"+key+"' for java object: "+obj); return null; } @@ -182,7 +182,7 @@ return; } } - throw luan.JAVA.exception("invalid member '"+key+"' for: "+obj); + throw luan.exception("invalid member '"+key+"' for: "+obj); } Class cls = obj.getClass(); if( cls.isArray() ) { @@ -191,7 +191,7 @@ Array.set(obj,i,value); return; } - throw luan.JAVA.exception("invalid member '"+key+"' for java array: "+obj); + throw luan.exception("invalid member '"+key+"' for java array: "+obj); } if( key instanceof String ) { String name = (String)key; @@ -203,7 +203,7 @@ return; } } - throw luan.JAVA.exception("invalid member '"+key+"' for java object: "+obj); + throw luan.exception("invalid member '"+key+"' for java object: "+obj); } private static void setMember(Object obj,List<Member> members,Object value) { @@ -377,7 +377,7 @@ return fn.rawCall(luan,args); } catch(IllegalArgumentException e) {} } - throw luan.JAVA.exception("no method matched args"); + throw luan.exception("no method matched args"); } } @@ -414,7 +414,7 @@ if( !cls.isInstance(v) ) { String got = v.getClass().getSimpleName(); String expected = cls.getSimpleName(); - throw luan.JAVA.exception("bad argument #1 ("+expected+" expected, got "+got+")"); + throw luan.exception("bad argument #1 ("+expected+" expected, got "+got+")"); } return v; } @@ -444,8 +444,8 @@ Object fnObj = t.get(name); if( fnObj==null && base!=null ) return method.invoke(base,args); - LuanFunction fn = luan.JAVA.checkFunction(fnObj); - return Luan.first(luan.JAVA.call(fn,name,args)); + LuanFunction fn = luan.checkFunction(fnObj); + return Luan.first(luan.call(fn,name,args)); } } );
--- a/src/luan/lib/PackageLib.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/PackageLib.java Tue Jun 10 02:43:40 2014 +0000 @@ -55,11 +55,11 @@ searchers = new LuanTable(Collections.<Object>singletonList(preloadSearcher)); for( Object s : searchers.asList() ) { LuanFunction searcher = (LuanFunction)s; - Object[] a = Luan.array(luan.JAVA.call(searcher,"<searcher>",new Object[]{modName})); + Object[] a = Luan.array(luan.call(searcher,"<searcher>",new Object[]{modName})); if( a.length >= 1 && a[0] instanceof LuanFunction ) { LuanFunction loader = (LuanFunction)a[0]; a[0] = modName; - mod = Luan.first(luan.JAVA.call(loader,"<require \""+modName+"\">",a)); + mod = Luan.first(luan.call(loader,"<require \""+modName+"\">",a)); if( mod != null ) { loaded.put(modName,mod); } else { @@ -71,7 +71,7 @@ } } if( mod == null ) - throw luan.JAVA.exception( "module '"+modName+"' not found" ); + throw luan.exception( "module '"+modName+"' not found" ); } return mod; } @@ -122,7 +122,7 @@ LuanFunction fn = BasicLib.load(luan,src,urlStr,false,false); return fn.call(luan,args); } catch(IOException e) { - throw luan.JAVA.exception(e); + throw luan.exception(e); } } };
--- a/src/luan/lib/PickleClient.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/PickleClient.java Tue Jun 10 02:43:40 2014 +0000 @@ -29,7 +29,7 @@ } else { String msg = (String)result[1]; String src = (String)result[2]; - throw con.luan.JAVA.exception( + throw con.luan.exception( msg + "\n" + "in:\n" + "------------------\n"
--- a/src/luan/lib/PickleCon.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/PickleCon.java Tue Jun 10 02:43:40 2014 +0000 @@ -49,7 +49,7 @@ while( i < size ) { int n = in.read(a,i,size-i); if( n == -1 ) - throw luan.JAVA.exception( "end of stream" ); + throw luan.exception( "end of stream" ); i += n; } return a; @@ -59,7 +59,7 @@ ioModule.put("_read_binary",_read_binary); src = in.readUTF(); LuanFunction fn = BasicLib.load(luan,src,"pickle-reader",true,false); - Object rtn = luan.JAVA.call(fn,null); + Object rtn = luan.call(fn); ioModule.put("_binaries",null); return rtn; } @@ -78,7 +78,7 @@ binaries.add(a); return "Io._binaries[" + binaries.size() + "]"; } - throw luan.JAVA.exception( "invalid type: " + obj.getClass() ); + throw luan.exception( "invalid type: " + obj.getClass() ); } private String pickle(Object obj,Set<LuanTable> set) throws LuanException { @@ -87,7 +87,7 @@ private String pickle(LuanTable tbl,Set<LuanTable> set) throws LuanException { if( !set.add(tbl) ) { - throw luan.JAVA.exception( "circular reference in table" ); + throw luan.exception( "circular reference in table" ); } StringBuilder sb = new StringBuilder(); sb.append( "{" ); @@ -111,7 +111,7 @@ } } for( Object obj : args ) { - sb.append( luan.JAVA.toString(obj) ); + sb.append( luan.toString(obj) ); } out.writeUTF( sb.toString() ); for( byte[] a : binaries ) {
--- a/src/luan/lib/StringLib.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/StringLib.java Tue Jun 10 02:43:40 2014 +0000 @@ -222,7 +222,7 @@ if( Luan.toBoolean(val) ) { String replacement = Luan.asString(val); if( replacement==null ) - throw luan.JAVA.exception( "invalid replacement value (a "+Luan.type(val)+")" ); + throw luan.exception( "invalid replacement value (a "+Luan.type(val)+")" ); m.appendReplacement(sb,replacement); } i++; @@ -245,11 +245,11 @@ args[j] = m.group(j); } } - Object val = Luan.first( luan.JAVA.call(fn,"repl-arg",args) ); + Object val = Luan.first( luan.call(fn,"repl-arg",args) ); if( Luan.toBoolean(val) ) { String replacement = Luan.asString(val); if( replacement==null ) - throw luan.JAVA.exception( "invalid replacement value (a "+Luan.type(val)+")" ); + throw luan.exception( "invalid replacement value (a "+Luan.type(val)+")" ); m.appendReplacement(sb,replacement); } i++; @@ -257,7 +257,7 @@ m.appendTail(sb); return new Object[]{ sb.toString(), i }; } - throw luan.JAVA.exception( "bad argument #3 to 'gsub' (string/function/table expected)" ); + throw luan.exception( "bad argument #3 to 'gsub' (string/function/table expected)" ); } // note - String.format() is too stupid to convert between ints and floats.
--- a/src/luan/lib/TableLib.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/TableLib.java Tue Jun 10 02:43:40 2014 +0000 @@ -54,7 +54,7 @@ buf.append(sep); String s = Luan.asString(val); if( s==null ) - throw luan.JAVA.exception( "invalid value ("+Luan.type(val)+") at index "+k+" in table for 'concat'" ); + throw luan.exception( "invalid value ("+Luan.type(val)+") at index "+k+" in table for 'concat'" ); buf.append(val); } return buf.toString(); @@ -64,7 +64,7 @@ try { list.insert(pos,value); } catch(IndexOutOfBoundsException e) { - throw luan.JAVA.exception(e); + throw luan.exception(e); } } @@ -72,7 +72,7 @@ try { return list.remove(pos); } catch(IndexOutOfBoundsException e) { - throw luan.JAVA.exception(e); + throw luan.exception(e); } } @@ -86,7 +86,7 @@ lt = new LessThan() { public boolean isLessThan(Object o1,Object o2) { try { - return luan.JAVA.isLessThan(o1,o2); + return luan.isLessThan(o1,o2); } catch(LuanException e) { throw new LuanRuntimeException(e); } @@ -96,7 +96,7 @@ lt = new LessThan() { public boolean isLessThan(Object o1,Object o2) { try { - return Luan.toBoolean(Luan.first(luan.JAVA.call(comp,"comp-arg",new Object[]{o1,o2}))); + return Luan.toBoolean(Luan.first(luan.call(comp,"comp-arg",new Object[]{o1,o2}))); } catch(LuanException e) { throw new LuanRuntimeException(e); }
--- a/src/luan/lib/ThreadLib.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/ThreadLib.java Tue Jun 10 02:43:40 2014 +0000 @@ -41,7 +41,7 @@ final Object[] newArgs = cloner.deepClone(args); exec.execute(new Runnable(){public void run() { try { - newLuan.JAVA.call(newFn,"<forked>",newArgs); + newLuan.call(newFn,"<forked>",newArgs); } catch(LuanException e) { e.printStackTrace(); }
--- a/src/luan/lib/Utils.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/lib/Utils.java Tue Jun 10 02:43:40 2014 +0000 @@ -16,7 +16,7 @@ public static void checkNotNull(LuanState luan,Object v,String expected) throws LuanException { if( v == null ) - throw luan.JAVA.exception("bad argument #1 ("+expected+" expected, got nil)"); + throw luan.exception("bad argument #1 ("+expected+" expected, got nil)"); } public static String readAll(Reader in)
--- a/src/luan/tools/CmdLine.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/tools/CmdLine.java Tue Jun 10 02:43:40 2014 +0000 @@ -16,7 +16,7 @@ LuanState luan = LuanState.newStandard(); try { LuanFunction standalone = (LuanFunction)luan.get("Basic.standalone"); - luan.JAVA.call(standalone,"standalone",args); + luan.call(standalone,args); } catch(LuanException e) { // System.err.println(e.getMessage()); e.printStackTrace();
--- a/src/luan/tools/WebRun.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/tools/WebRun.java Tue Jun 10 02:43:40 2014 +0000 @@ -38,7 +38,7 @@ LuanTable env = luan.global(); env.put("request",request); env.put("response",response); - luan.eval(code,"WebRun",false); + luan.eval(code); } catch(LuanException e) { logger.error(null,e); response.reset();
--- a/src/luan/tools/WebShell.java Mon Jun 09 09:16:16 2014 +0000 +++ b/src/luan/tools/WebShell.java Tue Jun 10 02:43:40 2014 +0000 @@ -31,7 +31,7 @@ } protected Object[] eval(LuanState luan,String cmd) throws LuanException { - return Luan.array(luan.eval(cmd,"WebShell",true)); + return Luan.array(luan.eval(cmd)); } @Override protected void service(HttpServletRequest request,HttpServletResponse response) @@ -69,7 +69,7 @@ for( int i=0; i<result.length; i++ ) { if( i > 0 ) writer.write(" "); - writer.write(HtmlLib.encode(luan.JAVA.toString(result[i]))); + writer.write(HtmlLib.encode(luan.toString(result[i]))); } writer.write("\r\n"); }