From 9a90884d46d6404057c7dbd2e3dbd064c6c62f19 Mon Sep 17 00:00:00 2001 From: voidlizard Date: Sun, 8 Jun 2025 12:12:35 +0300 Subject: [PATCH] bf6 bunch of tests for pm --- miscellaneous/suckless-conf/examples/p0.ss | 9 ++ miscellaneous/suckless-conf/examples/p1.ss | 9 ++ miscellaneous/suckless-conf/examples/pb.ss | 7 + miscellaneous/suckless-conf/examples/pe.ss | 156 ++++++++++++++++++++ miscellaneous/suckless-conf/examples/pi.ss | 20 +++ miscellaneous/suckless-conf/examples/pl.ss | 18 +++ miscellaneous/suckless-conf/examples/pl4.ss | 11 ++ miscellaneous/suckless-conf/examples/re.ss | 17 +++ 8 files changed, 247 insertions(+) create mode 100644 miscellaneous/suckless-conf/examples/p0.ss create mode 100644 miscellaneous/suckless-conf/examples/p1.ss create mode 100644 miscellaneous/suckless-conf/examples/pb.ss create mode 100644 miscellaneous/suckless-conf/examples/pe.ss create mode 100644 miscellaneous/suckless-conf/examples/pi.ss create mode 100644 miscellaneous/suckless-conf/examples/pl.ss create mode 100644 miscellaneous/suckless-conf/examples/pl4.ss create mode 100644 miscellaneous/suckless-conf/examples/re.ss diff --git a/miscellaneous/suckless-conf/examples/p0.ss b/miscellaneous/suckless-conf/examples/p0.ss new file mode 100644 index 00000000..3130d0d2 --- /dev/null +++ b/miscellaneous/suckless-conf/examples/p0.ss @@ -0,0 +1,9 @@ + +(println + (match '[1 2 3] + ( _ ok ) + ) +) + + + diff --git a/miscellaneous/suckless-conf/examples/p1.ss b/miscellaneous/suckless-conf/examples/p1.ss new file mode 100644 index 00000000..82a033cc --- /dev/null +++ b/miscellaneous/suckless-conf/examples/p1.ss @@ -0,0 +1,9 @@ + +(println + (match '[1 2 3] + ( [list?] ok ) + ) +) + + + diff --git a/miscellaneous/suckless-conf/examples/pb.ss b/miscellaneous/suckless-conf/examples/pb.ss new file mode 100644 index 00000000..11872aa6 --- /dev/null +++ b/miscellaneous/suckless-conf/examples/pb.ss @@ -0,0 +1,7 @@ +(println test1) + +(match 123 + ( [? foo [? k [int? _]] ] (println okay space k space foo)) + ( _ (println not-okay)) +) + diff --git a/miscellaneous/suckless-conf/examples/pe.ss b/miscellaneous/suckless-conf/examples/pe.ss new file mode 100644 index 00000000..43459605 --- /dev/null +++ b/miscellaneous/suckless-conf/examples/pe.ss @@ -0,0 +1,156 @@ + +(println + + (match 10 + ( n n ) + ) + +) + + +(println + + (match 10 + ( _ ok ) + ) + +) + + +(println + + (match '[] + ( [list?] ok-nil ) + ) +) + +(println + + (match 11 + ( [int?] ok-int ) + ) +) + +(println "atom/int") +(println + + (match :wtf + ( [int?] ok-int ) + ( _ ok-not-matched ) + ) +) + +(println "atom/atom") +(println + + (match :wtf + ( [sym?] ok-matched ) + ( _ fail-not-matched ) + ) +) + + +(println "int/predicate") +(println + + (match 9000 + ( [int? 9000] ok-matched-9000 ) + ( _ fail-not-matched ) + ) +) + +(println "int/predicate-2") +(println + + (match 9000 + ( [int? 5000] fail-matched-5000 ) + ( _ ok-not-matched ) + ) +) + +(println "int/predicate-3") +(println + + (match 9000 + ( [int? [fn x . gt? x 1000]] ok-predicate-matched-gt-1000 ) + ( _ fail-not-matched ) + ) +) + +(println "int/predicate-4") +(println + + (match 9000 + ( [int? [fn x . le? x 1000]] fail-predicate-matched-le-1000 ) + ( _ ok-not-matched ) + ) +) + +(println "list/1") + +(println + (match '[1 2 3 4] + ( [list? ...] [display ok ...]) + ( _ fail-not-matched) + ) +) + + +(println "list/2") + +(println + (match '[1 2] + ( [list? a b] `[ok ,a ,b]) + ( _ fail-not-matched) + ) +) + + +(println "list/3") + +(println + (match '[1 2] + ( [list? ...] [display ...]) + ( _ fail-not-matched) + ) +) + + + +(println "list/3.1") + +(println + (match '[] + ( [list? ...] (display ok ...) ) + ( _ fail-not-matched) + ) +) + +(println "list/4") + +(define (l4 s) + (match s + ( [list? a ...] (begin (println :l4 space a) (l4 ...)) ) + ( [list?] :done) + ) +) + +(l4 '[1 2 3 4 5]) + +(println :here-is-a space a) + +(define bebebe 134) + +(define (fuu) (define bebebe :jopa)) + +(fuu) + +(println bebebe) + + + + + + + + diff --git a/miscellaneous/suckless-conf/examples/pi.ss b/miscellaneous/suckless-conf/examples/pi.ss new file mode 100644 index 00000000..8f61d4e2 --- /dev/null +++ b/miscellaneous/suckless-conf/examples/pi.ss @@ -0,0 +1,20 @@ + +(println Test1) +(match 100 + ( [int? 100] (println okay)) + ( _ (println not-okay)) +) + +(println Test2) +(match 100 + ( [int?] (println okay)) + ( _ (println not-okay)) +) + +(println Test3) +(match 100 + ( [int? _] (println okay)) + ( _ (println not-okay)) +) + + diff --git a/miscellaneous/suckless-conf/examples/pl.ss b/miscellaneous/suckless-conf/examples/pl.ss new file mode 100644 index 00000000..f7864b5c --- /dev/null +++ b/miscellaneous/suckless-conf/examples/pl.ss @@ -0,0 +1,18 @@ +(println "list/1") + +(println + (match '[1 2 3 4] + ( [list? ...] [display ok ...]) + ( _ fail-not-matched) + ) +) + +(println "list/1.1") + +(println + (match [list 1 [list 2 3 4]] + ( [list? a [list? b c ...] ...] [println a space c]) + ( _ fail-not-matched) + ) +) + diff --git a/miscellaneous/suckless-conf/examples/pl4.ss b/miscellaneous/suckless-conf/examples/pl4.ss new file mode 100644 index 00000000..45121cfe --- /dev/null +++ b/miscellaneous/suckless-conf/examples/pl4.ss @@ -0,0 +1,11 @@ +(println "list/4") + +(define (l4 s) + (match s + ( [list? a ...] (begin (println :l4 space a) (l4 ...)) ) + ( [list?] (println :l4 space :done)) + ) +) + +(l4 '[1 2 3 4 5 6]) + diff --git a/miscellaneous/suckless-conf/examples/re.ss b/miscellaneous/suckless-conf/examples/re.ss new file mode 100644 index 00000000..6b3ec1a7 --- /dev/null +++ b/miscellaneous/suckless-conf/examples/re.ss @@ -0,0 +1,17 @@ + + +(local l1 [list 1 2 3 4 5 6 7 8]) + + +(define (q x) (begin (println x) (f x))) + + +(define (f x) +(match x + ( [list? n ...] (q ...) ) + ( [list?] '() ) +)) + +(f l1) + +