Mercurial Hosting > luan
diff src/luan/Luan.java @ 88:6ca02b188dba
add LuanBit to clean up code;
add repr();
git-svn-id: https://luan-java.googlecode.com/svn/trunk@89 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Wed, 27 Feb 2013 23:50:32 +0000 |
parents | b2551f00bc51 |
children | b1e87f1bcc13 |
line wrap: on
line diff
--- a/src/luan/Luan.java Wed Feb 27 19:42:09 2013 +0000 +++ b/src/luan/Luan.java Wed Feb 27 23:50:32 2013 +0000 @@ -94,5 +94,30 @@ return obj.toString(); } + public static String stringEncode(String s) { + s = s.replace("\\","\\\\"); + s = s.replace("\u0007","\\a"); + s = s.replace("\b","\\b"); + s = s.replace("\f","\\f"); + s = s.replace("\n","\\n"); + s = s.replace("\r","\\r"); + s = s.replace("\t","\\t"); + s = s.replace("\u000b","\\v"); + s = s.replace("\"","\\\""); + return s; + } + + public static String repr(Object obj) { + if( obj == null ) + return "nil"; + if( obj instanceof Number ) + return Luan.toString((Number)obj); + if( obj instanceof String ) + return "\"" + stringEncode((String)obj) + "\""; + if( obj instanceof LuanRepr ) + return ((LuanRepr)obj).repr(); + return null; + } + private Luan() {} // never }