diff src/luan/modules/StringLuan.java @ 1722:7d2ab44f7a59

remove String regex fns
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 29 Jul 2022 14:12:01 -0600
parents 5c69d2e8bd75
children e59349d53fec
line wrap: on
line diff
--- a/src/luan/modules/StringLuan.java	Tue Jul 26 12:44:52 2022 -0600
+++ b/src/luan/modules/StringLuan.java	Fri Jul 29 14:12:01 2022 -0600
@@ -2,8 +2,6 @@
 
 import java.security.NoSuchAlgorithmException;
 import java.util.Arrays;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
 import goodjava.util.GoodUtils;
 import luan.Luan;
 import luan.LuanTable;
@@ -99,100 +97,6 @@
 		return i == -1 ? null : new Integer[]{i+1,i+s2.length()};
 	}
 
-	public static String[] match(String s,String pattern,Integer init) {
-		int start = start(s,init,0);
-		Matcher m = Pattern.compile(pattern).matcher(s);
-		if( !m.find(start) )
-			return null;
-		int n = m.groupCount();
-		if( n == 0 )
-			return new String[]{m.group()};
-		String[] rtn = new String[n];
-		for( int i=0; i<n; i++ ) {
-			rtn[i] = m.group(i+1);
-		}
-		return rtn;
-	}
-
-	public static LuanFunction gmatch(String s,String pattern) throws LuanException {
-		Utils.checkNotNull(s);
-		Utils.checkNotNull(pattern,2);
-		final Matcher m = Pattern.compile(pattern).matcher(s);
-		return new LuanFunction() {
-			@Override public Object call(Luan luan,Object[] args) {
-				if( !m.find() )
-					return null;
-				final int n = m.groupCount();
-				if( n == 0 )
-					return m.group();
-				String[] rtn = new String[n];
-				for( int i=0; i<n; i++ ) {
-					rtn[i] = m.group(i+1);
-				}
-				return rtn;
-			}
-		};
-	}
-
-	public static Object[] gsub(Luan luan,String s,String pattern,Object repl,Integer n) throws LuanException {
-		Utils.checkNotNull(s);
-		int max = n==null ? Integer.MAX_VALUE : n;
-		final Matcher m = Pattern.compile(pattern).matcher(s);
-		if( repl instanceof String ) {
-			String replacement = (String)repl;
-			int i = 0;
-			StringBuffer sb = new StringBuffer();
-			while( i<max && m.find() ) {
-				m.appendReplacement(sb,replacement);
-				i++;
-			}
-			m.appendTail(sb);
-			return new Object[]{ sb.toString(), i };
-		}
-		if( repl instanceof LuanTable ) {
-			LuanTable t = (LuanTable)repl;
-			int i = 0;
-			StringBuffer sb = new StringBuffer();
-			while( i<max && m.find() ) {
-				String match = m.groupCount()==0 ? m.group() : m.group(1);
-				Object val = t.get(luan,match);
-				if( val != null ) {
-					String replacement = luan.luanToString(val);
-					m.appendReplacement(sb,replacement);
-				}
-				i++;
-			}
-			m.appendTail(sb);
-			return new Object[]{ sb.toString(), i };
-		}
-		if( repl instanceof LuanFunction ) {
-			LuanFunction fn = (LuanFunction)repl;
-			int i = 0;
-			StringBuffer sb = new StringBuffer();
-			while( i<max && m.find() ) {
-				Object[] args;
-				final int count = m.groupCount();
-				if( count == 0 ) {
-					args = new String[]{m.group()};
-				} else {
-					args = new String[count];
-					for( int j=0; j<count; j++ ) {
-						args[j] = m.group(j+1);
-					}
-				}
-				Object val = Luan.first( fn.call(luan,args) );
-				if( val != null ) {
-					String replacement = luan.luanToString(val);
-					m.appendReplacement(sb,replacement);
-				}
-				i++;
-			}
-			m.appendTail(sb);
-			return new Object[]{ sb.toString(), i };
-		}
-		throw new LuanException( "bad argument #3 to 'gsub' (string/function/table expected)" );
-	}
-
 	// note - String.format() is too stupid to convert between ints and floats.
 	public static String format(String format,Object... args) {
 		return String.format(format,args);
@@ -214,11 +118,6 @@
 		return null;
 	}
 
-	public static boolean matches(String s,String pattern) throws LuanException {
-		Utils.checkNotNull(s);
-		return Pattern.compile(pattern).matcher(s).find();
-	}
-
 	public static String[] split(String s,String s2,Integer limit) throws LuanException {
 		Utils.checkNotNull(s);
 		Utils.checkNotNull(s2,2);