Mercurial Hosting > luan
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; |