comparison src/luan/modules/parsers/LuanToString.java @ 1612:8852f34a646a

bug fix
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 23 May 2021 15:17:25 -0600
parents fa066aaa068c
children a37ffe2d1b14
comparison
equal deleted inserted replaced
1611:f67f972bd648 1612:8852f34a646a
124 if( tbl.getMetatable()!=null ) { 124 if( tbl.getMetatable()!=null ) {
125 if( settings.strict ) 125 if( settings.strict )
126 throw new LuanException("can't handle metatables when strict"); 126 throw new LuanException("can't handle metatables when strict");
127 if( luan==null ) 127 if( luan==null )
128 throw new LuanException("can't handle metatables when luan isn't set"); 128 throw new LuanException("can't handle metatables when luan isn't set");
129 } 129 LuanFunction pairs = luan.getHandlerFunction("__pairs",tbl);
130 LuanFunction pairs = luan.getHandlerFunction("__pairs",tbl); 130 if( pairs != null ) {
131 if( pairs != null ) { 131 sb.append( '{' );
132 sb.append( '{' ); 132 boolean first = true;
133 boolean first = true; 133 for( Object obj : tbl.iterable(luan) ) {
134 for( Object obj : tbl.iterable(luan) ) { 134 Map.Entry entry = (Map.Entry)obj;
135 Map.Entry entry = (Map.Entry)obj; 135 if( settings.compressed ) {
136 if( settings.compressed ) { 136 if( first )
137 if( first ) 137 first = false;
138 else
139 sb.append( ',' );
140 } else if( settings.inline ) {
141 if( first ) {
142 first = false;
143 sb.append( ' ' );
144 } else
145 sb.append( ", " );
146 } else {
138 first = false; 147 first = false;
139 else 148 indent(sb,indented+1);
140 sb.append( ',' ); 149 }
141 } else if( settings.inline ) { 150 toString(entry,sb,indented+1,settings);
142 if( first ) { 151 }
143 first = false; 152 if( !first ) {
153 if( settings.compressed ) {
154 } else if( settings.inline ) {
144 sb.append( ' ' ); 155 sb.append( ' ' );
145 } else 156 } else {
146 sb.append( ", " ); 157 indent(sb,indented);
147 } else { 158 }
148 first = false;
149 indent(sb,indented+1);
150 } 159 }
151 toString(entry,sb,indented+1,settings); 160 sb.append( '}' );
152 } 161 return;
153 if( !first ) { 162 }
154 if( settings.compressed ) {
155 } else if( settings.inline ) {
156 sb.append( ' ' );
157 } else {
158 indent(sb,indented);
159 }
160 }
161 sb.append( '}' );
162 return;
163 } 163 }
164 List list = tbl.asList(); 164 List list = tbl.asList();
165 Map map = tbl.rawMap(); 165 Map map = tbl.rawMap();
166 sb.append( '{' ); 166 sb.append( '{' );
167 boolean first = true; 167 boolean first = true;