ref: 6940a02fd47d73ba5dd0ad3a82b1945b639a23dc
parent: 770c90d4a5b16a5d598072b6983e50969151b166
author: Ori Bernstein <ori@eigenstate.org>
date: Thu Mar 21 16:18:52 EDT 2019
Commit bio.readterm
--- a/lib/bio/bio.myr
+++ b/lib/bio/bio.myr
@@ -28,7 +28,7 @@
/* delimited read; returns freshly allocated buffer. */
const readln : (f : file# -> std.result(byte[:], err))
const readto : (f : file#, delim : byte[:] -> std.result(byte[:], err))
- const readtoinc : (f: file#, delim : byte[:] -> std.result(byte[:], err))
+ const readterm : (f : file#, delim : byte[:] -> std.result(byte[:], err))
const skipto : (f : file#, delim : byte[:] -> bool)
const skipspace : (f : file# -> bool)
@@ -329,7 +329,7 @@
}
/* same as readto, but includes the delimiter if it was found */
-const readtoinc = {f, delim
+const readterm = {f, delim
-> readdelim(f, delim, `Keep)
}
--- /dev/null
+++ b/lib/bio/test/bio-readterm.myr
@@ -1,0 +1,30 @@
+use std
+use bio
+
+const main = {
+ var f
+
+ f = std.try(bio.open("data/bio-readterm", bio.Rd))
+
+ readterm(f, ";")
+ readterm(f, "]]]")
+ readterm(f, "\n")
+ readterm(f, ",")
+ readterm(f, ",")
+ readterm(f, ",")
+ readterm(f, "the end")
+
+ bio.close(f)
+}
+
+const readterm = {f, d
+ match bio.readterm(f, d)
+ | `std.Ok s:
+ std.put("{}\n", s)
+ std.slfree(s)
+ | `std.Err `bio.Eof:
+ std.put("eof\n")
+ | `std.Err _:
+ std.put("err\n")
+ ;;
+}
--- a/lib/bio/test/bio-readtoinc.myr
+++ /dev/null
@@ -1,30 +1,0 @@
-use std
-use bio
-
-const main = {
- var f
-
- f = std.try(bio.open("data/bio-readtoinc", bio.Rd))
-
- readtoinc(f, ";")
- readtoinc(f, "]]]")
- readtoinc(f, "\n")
- readtoinc(f, ",")
- readtoinc(f, ",")
- readtoinc(f, ",")
- readtoinc(f, "the end")
-
- bio.close(f)
-}
-
-const readtoinc = {f, d
- match bio.readtoinc(f, d)
- | `std.Ok s:
- std.put("{}\n", s)
- std.slfree(s)
- | `std.Err `bio.Eof:
- std.put("eof\n")
- | `std.Err _:
- std.put("err\n")
- ;;
-}
--- a/lib/bio/test/bld.sub
+++ b/lib/bio/test/bld.sub
@@ -14,6 +14,14 @@
lib @/lib/bio:bio
;;
+bin term {test} =
+ bio-readterm.myr
+
+ lib @/lib/std:std
+ lib @/lib/sys:sys
+ lib @/lib/bio:bio
+;;
+
bin endianrd {test} =
bio-endianrd.myr
lib @/lib/std:std
--- /dev/null
+++ b/lib/bio/test/data/bio-readterm
@@ -1,0 +1,2 @@
+data with semicolon;multiple delims]]]a new line
+data separated,with commas until,no more
--- a/lib/bio/test/data/bio-readtoinc
+++ /dev/null
@@ -1,2 +1,0 @@
-data with semicolon;multiple delims]]]a new line
-data separated,with commas until,no more