Mercurial Hosting > luan
changeset 51:28dfd91a816c
various small issues
git-svn-id: https://luan-java.googlecode.com/svn/trunk@52 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 28 Dec 2012 20:43:06 +0000 |
parents | 272b6f1d7dac |
children | 0c0f2b107099 |
files | src/luan/LuanSource.java src/luan/interp/LuanParser.java src/luan/lib/JavaLib.java src/luan/tools/WebShell.java |
diffstat | 4 files changed, 17 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
diff -r 272b6f1d7dac -r 28dfd91a816c src/luan/LuanSource.java --- a/src/luan/LuanSource.java Fri Dec 28 19:48:43 2012 +0000 +++ b/src/luan/LuanSource.java Fri Dec 28 20:43:06 2012 +0000 @@ -20,6 +20,9 @@ throw new NullPointerException("source is null"); this.source = source; this.start = start; + while( Character.isWhitespace(source.text.charAt(end-1)) ) { + end--; + } this.end = end; }
diff -r 272b6f1d7dac -r 28dfd91a816c src/luan/interp/LuanParser.java --- a/src/luan/interp/LuanParser.java Fri Dec 28 19:48:43 2012 +0000 +++ b/src/luan/interp/LuanParser.java Fri Dec 28 20:43:06 2012 +0000 @@ -162,16 +162,17 @@ FirstOf( Sequence( ExpList(), - EOI, - push( new ReturnStmt( se(start.get()), (Expressions)pop() ) ) + push( new ReturnStmt( se(start.get()), (Expressions)pop() ) ), + push( newChunk(start.get()) ), + EOI ), Sequence( action( frame.isVarArg = true ), Block(), + push( newChunk(start.get()) ), EOI ) - ), - push( newChunk(start.get()) ) + ) ); }
diff -r 272b6f1d7dac -r 28dfd91a816c src/luan/lib/JavaLib.java --- a/src/luan/lib/JavaLib.java Fri Dec 28 19:48:43 2012 +0000 +++ b/src/luan/lib/JavaLib.java Fri Dec 28 20:43:06 2012 +0000 @@ -187,11 +187,17 @@ } public static Static getClass(LuanState luan,String name) throws LuanException { + Class cls; try { - return new Static( Class.forName(name) ); + cls = Class.forName(name); } catch(ClassNotFoundException e) { - throw new LuanException(luan,LuanElement.JAVA,e); + try { + cls = Thread.currentThread().getContextClassLoader().loadClass(name); + } catch(ClassNotFoundException e2) { + throw new LuanException(luan,LuanElement.JAVA,e); + } } + return new Static(cls); } public static void importClass(LuanState luan,String name) throws LuanException {
diff -r 272b6f1d7dac -r 28dfd91a816c src/luan/tools/WebShell.java --- a/src/luan/tools/WebShell.java Fri Dec 28 19:48:43 2012 +0000 +++ b/src/luan/tools/WebShell.java Fri Dec 28 20:43:06 2012 +0000 @@ -27,7 +27,7 @@ public class WebShell extends HttpServlet { private static final Logger logger = LoggerFactory.getLogger(WebShell.class); - protected LuanState newLuanState() { + protected LuanState newLuanState() throws LuanException { LuanState luan = LuanCompiler.newLuanState(); BasicLib.register(luan); JavaLib.register(luan);