hare

[hare] The Hare programming language
git clone https://git.torresjrjr.com/hare.git
Log | Files | Refs | README | LICENSE

commit 4bf0ef3d6353b525f87d236193161db7852c673c
parent 5a9d8e7dc916a1131a04b06e1839eb63e487a3a5
Author: Sebastian <sebastian@sebsite.pw>
Date:   Sat, 20 Apr 2024 22:21:21 -0400

strings: return done from peek_token

Signed-off-by: Sebastian <sebastian@sebsite.pw>

Diffstat:
Mstrings/tokenize.ha | 15++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/strings/tokenize.ha b/strings/tokenize.ha @@ -41,17 +41,18 @@ export fn next_token(s: *tokenizer) (str | done) = { return match (bytes::next_token(s)) { case let b: []u8 => yield fromutf8_unsafe(b); - case void => yield done; + case void => return done; }; }; // Same as next_token(), but does not advance the cursor -export fn peek_token(s: *tokenizer) (str | void) = { +export fn peek_token(s: *tokenizer) (str | done) = { let s = s: *bytes::tokenizer; return match (bytes::peek_token(s)) { case let b: []u8 => yield fromutf8_unsafe(b); - case void => void; + case void => + return done; }; }; @@ -77,11 +78,11 @@ export fn remaining_tokens(s: *tokenizer) str = { assert(next_token(&tok) as str == ""); assert(peek_token(&tok) as str == ""); assert(next_token(&tok) as str == ""); - assert(peek_token(&tok) is void); + assert(peek_token(&tok) is done); assert(next_token(&tok) is done); let tok = tokenize("", "foo"); - assert(peek_token(&tok) is void); + assert(peek_token(&tok) is done); assert(next_token(&tok) is done); let tok = rtokenize("Hello, my name is drew", " "); @@ -110,7 +111,7 @@ export fn splitn(in: str, delim: str, n: size) []str = { }; }; match(peek_token(&tok)) { - case void => void; + case done => void; case let s: str => append(toks, remaining_tokens(&tok)); }; @@ -134,7 +135,7 @@ export fn rsplitn(in: str, delim: str, n: size) []str = { }; }; match(peek_token(&tok)) { - case void => void; + case done => void; case let s: str => append(toks, remaining_tokens(&tok)); };