comparison core/src/luan/LuanBit.java @ 481:5d4a78c93383

luan errors are now tables
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 11 May 2015 20:26:36 -0600
parents e12841f7edef
children e3b0846dc2ef
comparison
equal deleted inserted replaced
480:44caaa6a3d92 481:5d4a78c93383
10 LuanBit(LuanState luan,LuanElement el) { 10 LuanBit(LuanState luan,LuanElement el) {
11 this.luan = luan; 11 this.luan = luan;
12 this.el = el; 12 this.el = el;
13 } 13 }
14 14
15 public LuanException exception(Object msg) { 15 public LuanException exception(Object msg) throws LuanException {
16 return new LuanException(this,msg); 16 return new LuanException(this,msg);
17 } 17 }
18 18
19 public String stackTrace() { 19 public StackTraceElement[] stackTrace() {
20 StringBuilder buf = new StringBuilder(); 20 List<StackTraceElement> stackTrace = luan.stackTrace;
21 if( el != null ) 21 if( el != null )
22 buf.append( "\n\t" ).append( el.toString(null) ); 22 stackTrace.add(new StackTraceElement(el,null));
23 for( int i = luan.stackTrace.size() - 1; i>=0; i-- ) { 23 StackTraceElement[] rtn = stackTrace.toArray(new StackTraceElement[0]);
24 buf.append( "\n\t" ).append( luan.stackTrace.get(i) ); 24 if( el != null )
25 } 25 stackTrace.remove(stackTrace.size()-1);
26 return buf.toString(); 26 return rtn;
27 } 27 }
28 28
29 public void dumpStack() { 29 public void dumpStack() {
30 System.err.println( stackTrace() ); 30 System.err.println( stackTrace() );
31 } 31 }
91 } 91 }
92 if( obj == null ) 92 if( obj == null )
93 return "nil"; 93 return "nil";
94 if( obj instanceof Number ) 94 if( obj instanceof Number )
95 return Luan.toString((Number)obj); 95 return Luan.toString((Number)obj);
96 if( obj instanceof LuanException ) {
97 LuanException le = (LuanException)obj;
98 return le.getFullMessage();
99 }
100 if( obj instanceof byte[] ) 96 if( obj instanceof byte[] )
101 return "binary: " + Integer.toHexString(obj.hashCode()); 97 return "binary: " + Integer.toHexString(obj.hashCode());
102 return obj.toString(); 98 return obj.toString();
103 } 99 }
104 100