summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-10-25 18:54:40 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-10-25 18:54:40 -0700
commitd01991e9b250ca65d9afbfd7e5efd9ed4f0ef923 (patch)
tree69c443ab1377e4d8a14e5ca97f1eea40a3108a8e /tests
parentb72c9309c8d8f1af320dce616a69412510531b48 (diff)
downloadtxr-d01991e9b250ca65d9afbfd7e5efd9ed4f0ef923.tar.gz
txr-d01991e9b250ca65d9afbfd7e5efd9ed4f0ef923.tar.bz2
txr-d01991e9b250ca65d9afbfd7e5efd9ed4f0ef923.zip
awk: five new range operators.
* share/txr/stdlib/awk.tl (sys;awk-mac-let): Provide the implementation for the local macros --rng, --rng-, rng+, -rng+ and --rng+. * tests/015/awk-rng.tl: New file. * tests/015/awk-rng.expected: New file. * txr.1: Documented.
Diffstat (limited to 'tests')
-rw-r--r--tests/015/awk-rng.expected25
-rw-r--r--tests/015/awk-rng.tl18
2 files changed, 43 insertions, 0 deletions
diff --git a/tests/015/awk-rng.expected b/tests/015/awk-rng.expected
new file mode 100644
index 00000000..ad33b30b
--- /dev/null
+++ b/tests/015/awk-rng.expected
@@ -0,0 +1,25 @@
+rec rng -rng rng- -rng- --rng- --rng rng+ -rng+ --rng+ Y1Y2
+X1 t t t
+a t t t t t t
+b t t t t t t
+X1 t t t t t t
+c t t t t t t
+X2 t t t t t t
+1 t t t t t t t t t
+2 t t t t t t t t t
+3 t t t t t t t t t
+Y1 t t t end t t t
+r end end t t
+s end end t t
+Y2 end end t t
+t
+Y2
+X1X2 t t t
+Y1Y2 t t t end t t t
+X1X2 t t t
+Y1 t t t end t t t
+a end end t t
+Y2 end end t t
+X1 t t t
+b t t t t t t
+X2 t t t t t t
diff --git a/tests/015/awk-rng.tl b/tests/015/awk-rng.tl
new file mode 100644
index 00000000..8bf2fa3c
--- /dev/null
+++ b/tests/015/awk-rng.tl
@@ -0,0 +1,18 @@
+(awk (:inputs '#"X1 a b X1 c X2 1 2 3 Y1 r s Y2 t Y2"
+ '#"X1X2 Y1Y2"
+ '#"X1X2 Y1 a Y2 X1 b X2")
+ (:set ofs "\t")
+ (:begin
+ (prn 'rec 'rng '-rng 'rng- '-rng- '--rng- '--rng 'rng+ '-rng+ '--rng+ 'Y1Y2))
+ (t (prn rec
+ (rng (rng #/X1/ #/X2/) (rng #/Y1/ #/Y2/))
+ (-rng (rng #/X1/ #/X2/) (rng #/Y1/ #/Y2/))
+ (rng- (rng #/X1/ #/X2/) (rng #/Y1/ #/Y2/))
+ (-rng- (rng #/X1/ #/X2/) (rng #/Y1/ #/Y2/))
+ (--rng- (rng #/X1/ #/X2/) (rng #/Y1/ #/Y2/))
+ (--rng (rng #/X1/ #/X2/) (rng #/Y1/ #/Y2/))
+ (rng+ (rng #/X1/ #/X2/) (rng #/Y1/ #/Y2/))
+ (-rng+ (rng #/X1/ #/X2/) (rng #/Y1/ #/Y2/))
+ (--rng+ (rng #/X1/ #/X2/) (rng #/Y1/ #/Y2/))
+ (rng #/Y1/ #/Y2/))))
+