Mercurial Hosting > luan
comparison core/src/luan/modules/StringLuan.java @ 572:f1601a4ce1aa
fix stack when calling meta-methods
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 12 Jul 2015 21:34:23 -0600 |
parents | e25ba7a2e816 |
children | 6cc2f047019b |
comparison
equal
deleted
inserted
replaced
571:cd944b010f25 | 572:f1601a4ce1aa |
---|---|
166 LuanTable t = (LuanTable)repl; | 166 LuanTable t = (LuanTable)repl; |
167 int i = 0; | 167 int i = 0; |
168 StringBuffer sb = new StringBuffer(); | 168 StringBuffer sb = new StringBuffer(); |
169 while( i<max && m.find() ) { | 169 while( i<max && m.find() ) { |
170 String match = m.groupCount()==0 ? m.group() : m.group(1); | 170 String match = m.groupCount()==0 ? m.group() : m.group(1); |
171 Object val = t.get(luan,match); | 171 Object val = t.get(luan.JAVA,match); |
172 if( val != null ) { | 172 if( val != null ) { |
173 String replacement = luan.toString(val); | 173 String replacement = luan.JAVA.toString(val); |
174 m.appendReplacement(sb,replacement); | 174 m.appendReplacement(sb,replacement); |
175 } | 175 } |
176 i++; | 176 i++; |
177 } | 177 } |
178 m.appendTail(sb); | 178 m.appendTail(sb); |
193 args[j] = m.group(j+1); | 193 args[j] = m.group(j+1); |
194 } | 194 } |
195 } | 195 } |
196 Object val = Luan.first( luan.call(fn,"repl-arg",args) ); | 196 Object val = Luan.first( luan.call(fn,"repl-arg",args) ); |
197 if( val != null ) { | 197 if( val != null ) { |
198 String replacement = luan.toString(val); | 198 String replacement = luan.JAVA.toString(val); |
199 m.appendReplacement(sb,replacement); | 199 m.appendReplacement(sb,replacement); |
200 } | 200 } |
201 i++; | 201 i++; |
202 } | 202 } |
203 m.appendTail(sb); | 203 m.appendTail(sb); |
212 } | 212 } |
213 | 213 |
214 public static String concat(LuanState luan,Object... args) throws LuanException { | 214 public static String concat(LuanState luan,Object... args) throws LuanException { |
215 StringBuilder sb = new StringBuilder(); | 215 StringBuilder sb = new StringBuilder(); |
216 for( Object arg : args ) { | 216 for( Object arg : args ) { |
217 sb.append( luan.toString(arg) ); | 217 sb.append( luan.JAVA.toString(arg) ); |
218 } | 218 } |
219 return sb.toString(); | 219 return sb.toString(); |
220 } | 220 } |
221 | 221 |
222 public static String encode(String s) { | 222 public static String encode(String s) { |