Mercurial Hosting > luan
diff src/luan/modules/parsers/LuanToString.java @ 1388:2024d23ddd64
add restore_from_postgres
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 03 Sep 2019 22:12:53 -0600 |
parents | db7d31f4089a |
children | 9103a61e64bc |
line wrap: on
line diff
--- a/src/luan/modules/parsers/LuanToString.java Mon Sep 02 22:23:12 2019 -0600 +++ b/src/luan/modules/parsers/LuanToString.java Tue Sep 03 22:12:53 2019 -0600 @@ -5,22 +5,19 @@ import luan.Luan; import luan.LuanTable; import luan.LuanException; +import luan.LuanRuntimeException; public final class LuanToString { + public boolean strict = false; + public boolean numberTypes = false; - public static String toString(Object obj,boolean strict) throws LuanException { + public String toString(Object obj) throws LuanException { StringBuilder sb = new StringBuilder(); - new LuanToString(strict).toString(obj,sb,0); + toString(obj,sb,0); return sb.toString(); } - private final boolean strict; - - private LuanToString(boolean strict) { - this.strict = strict; - } - private void toString(Object obj,StringBuilder sb,int indented) throws LuanException { if( obj == null ) { sb.append( "nil" ); @@ -31,7 +28,7 @@ return; } if( obj instanceof Number ) { - sb.append( Luan.toString((Number)obj) ); + toString((Number)obj,sb); return; } if( obj instanceof String ) { @@ -93,4 +90,25 @@ } } + private void toString(Number n,StringBuilder sb) throws LuanException { + if( numberTypes ) { + sb.append( n.getClass().getSimpleName().toLowerCase() ); + sb.append( '(' ); + } + sb.append( Luan.toString(n) ); + if( numberTypes ) + sb.append( ')' ); + } + + public static void addNumberTypes(LuanTable env) { + try { + LuanTable module = (LuanTable)env.luan().require("luan:Number.luan"); + env.put( "double", module.fn("double") ); + env.put( "float", module.fn("float") ); + env.put( "integer", module.fn("integer") ); + env.put( "long", module.fn("long") ); + } catch(LuanException e) { + throw new LuanRuntimeException(e); + } + } }