summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2020-07-22 19:57:42 -0700
committerKaz Kylheku <kaz@kylheku.com>2020-07-22 19:57:42 -0700
commite0092558ad119f9a3c16b9f357e7ca0dcdf1044c (patch)
tree26fd17118ef8a6cb0b3410cb93cc70cad9eb0978
parent9c2fcf3aeae6cd112a1e5b5e8374a03cf5217c9b (diff)
downloadtxr-e0092558ad119f9a3c16b9f357e7ca0dcdf1044c.tar.gz
txr-e0092558ad119f9a3c16b9f357e7ca0dcdf1044c.tar.bz2
txr-e0092558ad119f9a3c16b9f357e7ca0dcdf1044c.zip
New sspl function.
* eval (eval_init): Register sspl, an argument-reversed interface to split-str-set. * lib.c (sspl): New function. * lib.h (sspl): Declared. * txr.1: Documented.
-rw-r--r--eval.c1
-rw-r--r--lib.c5
-rw-r--r--lib.h1
-rw-r--r--txr.111
4 files changed, 17 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index fe11c763..2cc73d0e 100644
--- a/eval.c
+++ b/eval.c
@@ -6808,6 +6808,7 @@ void eval_init(void)
reg_fun(intern(lit("split-str"), user_package), func_n3o(split_str_keep, 2));
reg_fun(intern(lit("spl"), user_package), func_n3o(spl, 2));
reg_fun(intern(lit("split-str-set"), user_package), func_n2(split_str_set));
+ reg_fun(intern(lit("sspl"), user_package), func_n2(sspl));
reg_fun(intern(lit("tok-str"), user_package), func_n3o(tok_str, 2));
reg_fun(intern(lit("tok"), user_package), func_n3o(tok, 2));
reg_fun(intern(lit("tok-where"), user_package), func_n2(tok_where));
diff --git a/lib.c b/lib.c
index 4fcd12cc..fb9b24fc 100644
--- a/lib.c
+++ b/lib.c
@@ -5060,6 +5060,11 @@ val split_str_set(val str, val set)
return out;
}
+val sspl(val set, val str)
+{
+ return split_str_set(str, set);
+}
+
val tok_str(val str, val tok_regex, val keep_sep)
{
list_collect_decl (out, iter);
diff --git a/lib.h b/lib.h
index fc4dfebd..f23eb36f 100644
--- a/lib.h
+++ b/lib.h
@@ -875,6 +875,7 @@ val split_str(val str, val sep);
val split_str_keep(val str, val sep, val keep_sep);
val spl(val sep, val arg1, val arg2);
val split_str_set(val str, val set);
+val sspl(val set, val str);
val tok_str(val str, val tok_regex, val keep_sep);
val tok(val tok_regex, val arg1, val arg2);
val tok_where(val str, val tok_regex);
diff --git a/txr.1 b/txr.1
index a2cfd4e3..23d149af 100644
--- a/txr.1
+++ b/txr.1
@@ -23417,9 +23417,10 @@ family, in the common situation when
.meta string
is the unbound argument.
-.coNP Function @ split-str-set
+.coNP Functions @ split-str-set and @ sspl
.synb
.mets (split-str-set < string << set )
+.mets (sspl < set << string )
.syne
.desc
The
@@ -23449,6 +23450,14 @@ This operation is nondestructive:
.meta string
is not modified in any way.
+The
+.code sspl
+function performs the same operation; the only difference between
+.code sspl
+and
+.code split-str-set
+is argument order.
+
.coNP Functions @ tok-str and @ tok-where
.synb
.mets (tok-str < string < regex <> [ keep-between ])