From b1acee7254e4cdb4297bc39f2b455dcf8cb344da Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 2 Mar 2023 06:02:38 -0700 Subject: [PATCH] Fix typed expression being space-separated-only --- kiss/src/kiss/Reader.hx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kiss/src/kiss/Reader.hx b/kiss/src/kiss/Reader.hx index 142316fe..c6450f42 100644 --- a/kiss/src/kiss/Reader.hx +++ b/kiss/src/kiss/Reader.hx @@ -90,7 +90,7 @@ class Reader { RawHaxeBlock(stream.expect("closing }#", () -> stream.takeUntilAndDrop("}#"))); }; - readTable[":"] = (stream:Stream, k) -> TypedExp(stream.expect("a type path", () -> stream.takeUntilAndDrop(" ")), assertRead(stream, k)); + readTable[":"] = (stream:Stream, k) -> TypedExp(stream.expect("a type path", () -> stream.takeUntilOneOf(whitespace)), assertRead(stream, k)); readTable["&"] = (stream:Stream, k) -> MetaExp(nextToken(stream, "a meta symbol like mut, optional, rest"), assertRead(stream, k)); @@ -228,7 +228,8 @@ class Reader { return readTable; } - public static final terminators = [")", "]", "}", '"', "/*", "\n", " "]; + public static final whitespace = [" ", "\t", "\n"]; + public static final terminators = [")", "]", "}", '"', "/*"].concat(whitespace); public static function nextToken(stream:Stream, expect:String, allowEmptyString = false) { switch (stream.takeUntilOneOf(terminators, true)) {