From 1ab8db590b41ed86a2307258ccbb62a6652a4ae7 Mon Sep 17 00:00:00 2001
From: Michael Sippel <micha@fragmental.art>
Date: Tue, 3 Oct 2023 04:19:33 +0200
Subject: [PATCH] typedb: add more advanced examples with dummy-polymorphism of
 cut / sort

---
 typedb | 56 ++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 36 insertions(+), 20 deletions(-)

diff --git a/typedb b/typedb
index eee1593..ce1177c 100644
--- a/typedb
+++ b/typedb
@@ -24,30 +24,10 @@
 ::seq \(-s\|--separator\) : [0-9]*
 <1: <Seq ℕ>~<Seq <PosInt 10 BigEndian>~<Seq <Digit 10>~Char>~<SepSeq Char ':'>~<Seq Char>
 
-::sort -n\( .*\)*
->0: <Seq ℕ>~<Seq <PosInt 10 BigEndian>~<Seq <Digit 10>~Char>>~<SepSeq Char '\n'>~<Seq Char>
-<1: <Seq ℕ>~<Seq <PosInt 10 BigEndian>~<Seq <Digit 10>~Char>>~<SepSeq Char '\n'>~<Seq Char>
-
-::sort -M\( .*\)*
->0: <Seq Month~LocaleShortMonth~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
-<1: <Seq Month~LocaleShortMonth~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
-
-::sort\( .*\)*
->0: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
-<1: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
-
 ::\(head\|tail\)\(\| .*\)
 >0: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
 <1: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
 
-::cut -d[ ]*: -f[0-9]*
->0: <Seq <Seq <Seq Char>>~<SepSeq Char ':'>~<Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
-<1: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
-
-::cut -d[ ]*/ -f[0-9]*
->0: <Seq <Seq <Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
-<1: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
-
 ::ls\( .*\)* -l\( .*\)
 <1: <Seq FileInfo>~<Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
 
@@ -116,10 +96,46 @@
 >0: <Seq Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<SepSeq Char ':'>~<Seq Char>
 <1: <Seq Date~<TimeSince UnixEpoch>~<Duration Seconds>~ℕ~<PosInt 10 BigEndian>~<Seq <Digit 10>~Char>>~<SepSeq Char '\n'>~<Seq Char>
 
+::xargs -d[ ]*: stat -c %[WXYZ],%n
+>0: <Seq Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<SepSeq Char ':'>~<Seq Char>
+<1: <Seq <Tuple Date~<TimeSince UnixEpoch>~<Duration Seconds>~ℕ~<PosInt 10 BigEndian>~<Seq <Digit 10>~Char> ',' Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+
 ::xargs -d[ ]*: stat -c %[wxyz]
 >0: <Seq Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<SepSeq Char ':'>~<Seq Char>
 <1: <Seq Date~ISO-8601~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
 
+::sort -t, -k1 -n
+>0: <Seq <Tuple Date~<TimeSince UnixEpoch>~<Duration Seconds>~ℕ~<PosInt 10 BigEndian>~<Seq <Digit 10>~Char> ',' Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+<1: <Seq <Tuple Date~<TimeSince UnixEpoch>~<Duration Seconds>~ℕ~<PosInt 10 BigEndian>~<Seq <Digit 10>~Char> ',' Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+
+::cut -d[ ]*, -f[ ]*1
+>0: <Seq <Tuple Date~<TimeSince UnixEpoch>~<Duration Seconds>~ℕ~<PosInt 10 BigEndian>~<Seq <Digit 10>~Char> ',' Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+<1: <Seq Date~<TimeSince UnixEpoch>~<Duration Seconds>~ℕ~<PosInt 10 BigEndian>~<Seq <Digit 10>~Char>>~<SepSeq Char '\n'>~<Seq Char>
+
+::cut -d[ ]*, -f[ ]*2
+>0: <Seq <Tuple Date~<TimeSince UnixEpoch>~<Duration Seconds>~ℕ~<PosInt 10 BigEndian>~<Seq <Digit 10>~Char> ',' Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+<1: <Seq Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+
+::cut -d[ ]*: -f[0-9]*
+>0: <Seq <Seq <Seq Char>>~<SepSeq Char ':'>~<Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+<1: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+
+::cut -d[ ]*/ -f[0-9]*
+>0: <Seq <Seq <Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+<1: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+
+::sort -n\( .*\)*
+>0: <Seq ℕ>~<Seq <PosInt 10 BigEndian>~<Seq <Digit 10>~Char>>~<SepSeq Char '\n'>~<Seq Char>
+<1: <Seq ℕ>~<Seq <PosInt 10 BigEndian>~<Seq <Digit 10>~Char>>~<SepSeq Char '\n'>~<Seq Char>
+
+::sort -M\( .*\)*
+>0: <Seq Month~LocaleShortMonth~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+<1: <Seq Month~LocaleShortMonth~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+
+::sort\( .*\)*
+>0: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+<1: <Seq <Seq Char>>~<SepSeq Char '\n'>~<Seq Char>
+
 ::xargs rm\( .*\)*
 >0: <Seq Path~<Seq PathSegment~<Seq Char>>~<SepSeq Char '/'>~<Seq Char>>~<SepSeq Char '\n'>~<Seq Char>