summaryrefslogtreecommitdiffstats
path: root/tests/015
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-05-30 06:44:28 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-05-30 06:44:28 -0700
commitcce3c4bef38888be015b0652d136e34c8ae7e59f (patch)
tree8f1af5da0718bf01b71ca860616ca7b8f3d652a6 /tests/015
parentbc591cb5ee04582dbdf17a0125987ec03e8c064f (diff)
downloadtxr-cce3c4bef38888be015b0652d136e34c8ae7e59f.tar.gz
txr-cce3c4bef38888be015b0652d136e34c8ae7e59f.tar.bz2
txr-cce3c4bef38888be015b0652d136e34c8ae7e59f.zip
New: spln and tokn functions.
Instead of trying to work the new count parameter into the spl and tok functions, it's better to make new ones. * eval.c (eval_init): spln and tokn intrinsics registered. * lib.[ch] (spln, tokn): New functions. * tests/015/split.tl: New test cases. * txr.1: Documented. * stdlib/doc-syms.tl: Updated.
Diffstat (limited to 'tests/015')
-rw-r--r--tests/015/split.tl27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/015/split.tl b/tests/015/split.tl
index 9e952342..15b3f2a7 100644
--- a/tests/015/split.tl
+++ b/tests/015/split.tl
@@ -211,6 +211,23 @@
(tok-str "a,b,c" #/[^,]/ t 4) ("" "a" "," "b" "," "c" ""))
(mtest
+ (tok #/[^,]/ "a,b,c") #"a b c"
+ (tokn : #/[^,]/ "a,b,c") :error
+ (tokn nil #/[^,]/ "a,b,c") :error
+ (tokn 0 #/[^,]/ "a,b,c") ("a,b,c")
+ (tokn 1 #/[^,]/ "a,b,c") ("a" ",b,c")
+ (tokn 2 #/[^,]/ "a,b,c") ("a" "b" ",c")
+ (tokn 3 #/[^,]/ "a,b,c") ("a" "b" "c")
+ (tokn 4 #/[^,]/ "a,b,c") ("a" "b" "c"))
+
+(mtest
+ (tokn 0 #/[^,]/ t "a,b,c") ("a,b,c")
+ (tokn 1 #/[^,]/ t "a,b,c") ("" "a" ",b,c")
+ (tokn 2 #/[^,]/ t "a,b,c") ("" "a" "," "b" ",c")
+ (tokn 3 #/[^,]/ t "a,b,c") ("" "a" "," "b" "," "c" "")
+ (tokn 4 #/[^,]/ t "a,b,c") ("" "a" "," "b" "," "c" ""))
+
+(mtest
(join) ""
(join "") ""
(join "" "") ""
@@ -271,3 +288,13 @@
(split-str "a12b34c567d" #/[0-9]+/ t 2) ("a" "12" "b" "34" "c567d")
(split-str "a12b34c567d" #/[0-9]+/ t 3) ("a" "12" "b" "34" "c" "567" "d")
(split-str "a12b34c567d" #/[0-9]+/ t 4) ("a" "12" "b" "34" "c" "567" "d"))
+
+(mtest
+ (spl "," "a,b,c") #"a b c"
+ (spln : "," "a,b,c") :error
+ (spln nil "," "a,b,c") :error
+ (spln 0 "," "a,b,c") ("a,b,c")
+ (spln 1 "," "a,b,c") ("a" "b,c")
+ (spln 2 "," "a,b,c") ("a" "b" "c")
+ (spln 3 "," "a,b,c") ("a" "b" "c")
+ (spln 4 "," "a,b,c") ("a" "b" "c"))