Mercurial Hosting > luan
diff core/src/luan/LuanBit.java @ 575:7c3ad6db8ac3
make LuanState.JAVA private
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 13 Jul 2015 18:34:31 -0600 |
parents | 6cc2f047019b |
children |
line wrap: on
line diff
--- a/core/src/luan/LuanBit.java Mon Jul 13 12:31:53 2015 -0600 +++ b/core/src/luan/LuanBit.java Mon Jul 13 18:34:31 2015 -0600 @@ -41,17 +41,53 @@ } } - public void push(String fnName) { + private void push(String fnName) { if( el == null ) throw new RuntimeException(); List<StackTraceElement> stackTrace = luan.stackTrace; stackTrace.add( new StackTraceElement(el,fnName) ); } - public void pop() { + private void pop() { List<StackTraceElement> stackTrace = luan.stackTrace; stackTrace.remove(stackTrace.size()-1); } + public String toString(Object obj) throws LuanException { + push(null); + try { + return luan.toString(obj); + } finally { + pop(); + } + } + + public Object index(Object obj,Object key) throws LuanException { + push(null); + try { + return luan.index(obj,key); + } finally { + pop(); + } + } + + public int length(LuanTable t) throws LuanException { + push(null); + try { + return t.length(luan); + } finally { + pop(); + } + } + + public void put(LuanTable t,Object key,Object value) throws LuanException { + push(null); + try { + t.put(luan,key,value); + } finally { + pop(); + } + } + public String checkString(Object obj) throws LuanException { if( obj instanceof String ) return (String)obj; @@ -133,18 +169,4 @@ throw exception("attempt to perform arithmetic on a "+type+" value"); } - public String toString(Object obj) throws LuanException { - if( obj instanceof LuanTable ) { - LuanTable tbl = (LuanTable)obj; - return tbl.toString(this); - } - if( obj == null ) - return "nil"; - if( obj instanceof Number ) - return Luan.toString((Number)obj); - if( obj instanceof byte[] ) - return "binary: " + Integer.toHexString(obj.hashCode()); - return obj.toString(); - } - }