diff --git a/extra/modern/modern.factor b/extra/modern/modern.factor index d299def08a..cb9cdd29a4 100644 --- a/extra/modern/modern.factor +++ b/extra/modern/modern.factor @@ -445,6 +445,7 @@ DEFER: lex-factor-top* dup section-open? [ read-acute ] when ] } + ! Two cases: zero width slice if we found whitespace, otherwise token { char: \s [ read-token-or-whitespace-top ] } { char: \r [ read-token-or-whitespace-top ] } { char: \n [ read-token-or-whitespace-top ] } diff --git a/extra/modern/slices/slices.factor b/extra/modern/slices/slices.factor index fb5c5ef256..0eef47ade2 100644 --- a/extra/modern/slices/slices.factor +++ b/extra/modern/slices/slices.factor @@ -97,7 +97,8 @@ ERROR: unexpected-eof string n expected ; ] when ; -! Takes at least one character if not whitespace +! Whitespace is either found immediately, returning a zero-width slice +! OR we find it at the end of a token :: slice-til-either ( string n tokens -- string n'/f slice/f ch/f ) n [ string n [ tokens member? ] find-from'