From 7a0ba26aa3693f2c5e579ac351bbec944415023f Mon Sep 17 00:00:00 2001 From: Celestino Amoroso Date: Fri, 3 May 2024 08:48:29 +0200 Subject: [PATCH] some expression and data files used by tests --- file-reader.expr | 33 +++++++++++++++++++++++++++++++++ int.list | 4 ++++ iterator.expr | 18 ++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 file-reader.expr create mode 100644 int.list create mode 100644 iterator.expr diff --git a/file-reader.expr b/file-reader.expr new file mode 100644 index 0000000..5b170b1 --- /dev/null +++ b/file-reader.expr @@ -0,0 +1,33 @@ +builtin ["os.file", "base"]; + +readInt=func(fh){ + line=readFile(fh); + line ? [nil] {nil} :: {int(line)} +}; + +ds={ + "init":func(filename){ + fh=openFile(filename); + fh ? [nil] {nil} :: { @current=readInt(fh); @prev=@current }; + fh + }, + "current":func(){ + prev + }, + "next":func(fh){ + current ? + [nil] {current} + :: {@prev=current; @current=readInt(fh) but current} + }, + "clean":func(fh){ + closeFile(fh) + } +} + +//;f=$(ds, "int.list") +/* +;f++ +;f++ +;f++ +*/ +//;add(f) diff --git a/int.list b/int.list new file mode 100644 index 0000000..88aac63 --- /dev/null +++ b/int.list @@ -0,0 +1,4 @@ +10 +20 +5 +12 diff --git a/iterator.expr b/iterator.expr new file mode 100644 index 0000000..4e3c0d1 --- /dev/null +++ b/iterator.expr @@ -0,0 +1,18 @@ +ds={ + "init":func(end){@end=end; @current=0; @prev=@current}, + "current":func(){prev}, + "next":func(){ + (current <= end) ? [true] {@current=current+1; @prev=current} :: {nil} + }, + "reset":func(){@current=0; @prev=@current} +} + +// Example +//; +//it=$(ds,3); +//it++; +//it."reset" +//it++; +//it++; +//add(it) +