Mercurial Hosting > luan
comparison src/luan/modules/StringLuan.java @ 1563:8fbcc4747091
remove LuanFunction.luan
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 09 Nov 2020 01:37:57 -0700 |
parents | b89212fd04b5 |
children | f7e2df85fc0a |
comparison
equal
deleted
inserted
replaced
1562:b89212fd04b5 | 1563:8fbcc4747091 |
---|---|
127 | 127 |
128 public static LuanFunction gmatch(String s,String pattern) throws LuanException { | 128 public static LuanFunction gmatch(String s,String pattern) throws LuanException { |
129 Utils.checkNotNull(s); | 129 Utils.checkNotNull(s); |
130 Utils.checkNotNull(pattern,2); | 130 Utils.checkNotNull(pattern,2); |
131 final Matcher m = Pattern.compile(pattern).matcher(s); | 131 final Matcher m = Pattern.compile(pattern).matcher(s); |
132 return new LuanFunction(false) { | 132 return new LuanFunction() { |
133 @Override public Object call(Object[] args) { | 133 @Override public Object call(Luan luan,Object[] args) { |
134 if( !m.find() ) | 134 if( !m.find() ) |
135 return null; | 135 return null; |
136 final int n = m.groupCount(); | 136 final int n = m.groupCount(); |
137 if( n == 0 ) | 137 if( n == 0 ) |
138 return m.group(); | 138 return m.group(); |
166 StringBuffer sb = new StringBuffer(); | 166 StringBuffer sb = new StringBuffer(); |
167 while( i<max && m.find() ) { | 167 while( i<max && m.find() ) { |
168 String match = m.groupCount()==0 ? m.group() : m.group(1); | 168 String match = m.groupCount()==0 ? m.group() : m.group(1); |
169 Object val = t.get(luan,match); | 169 Object val = t.get(luan,match); |
170 if( val != null ) { | 170 if( val != null ) { |
171 String replacement = Luan.luanToString(val); | 171 String replacement = luan.luanToString(val); |
172 m.appendReplacement(sb,replacement); | 172 m.appendReplacement(sb,replacement); |
173 } | 173 } |
174 i++; | 174 i++; |
175 } | 175 } |
176 m.appendTail(sb); | 176 m.appendTail(sb); |
189 args = new String[count]; | 189 args = new String[count]; |
190 for( int j=0; j<count; j++ ) { | 190 for( int j=0; j<count; j++ ) { |
191 args[j] = m.group(j+1); | 191 args[j] = m.group(j+1); |
192 } | 192 } |
193 } | 193 } |
194 Object val = Luan.first( fn.call(args) ); | 194 Object val = Luan.first( fn.call(luan,args) ); |
195 if( val != null ) { | 195 if( val != null ) { |
196 String replacement = Luan.luanToString(val); | 196 String replacement = luan.luanToString(val); |
197 m.appendReplacement(sb,replacement); | 197 m.appendReplacement(sb,replacement); |
198 } | 198 } |
199 i++; | 199 i++; |
200 } | 200 } |
201 m.appendTail(sb); | 201 m.appendTail(sb); |