release
Slava Pestov 2007-10-27 14:43:17 -04:00
parent 5fb227926c
commit 5cf331a345
2 changed files with 8 additions and 5 deletions
core
io/buffers
optimizer/known-words

View File

@ -51,12 +51,11 @@ TUPLE: buffer size ptr fill pos ;
: buffer>> ( buffer -- string )
dup (buffer>>) 0 rot buffer-reset ;
: (buffer-until) ( start end alien separators -- n )
: search-buffer-until ( start end alien separators -- n )
[ >r swap alien-unsigned-1 r> memq? ] 2curry find* drop ;
: buffer-until ( separators buffer -- string separator )
tuck { buffer-pos buffer-fill buffer-ptr } get-slots roll
(buffer-until) [
: finish-buffer-until ( buffer n -- string separator )
[
over buffer-pos -
over buffer>
swap buffer-pop
@ -64,6 +63,10 @@ TUPLE: buffer size ptr fill pos ;
buffer>> f
] if* ;
: buffer-until ( separators buffer -- string separator )
tuck { buffer-pos buffer-fill buffer-ptr } get-slots roll
search-buffer-until finish-buffer-until ;
: buffer-length ( buffer -- n )
dup buffer-fill swap buffer-pos - ;

View File

@ -149,4 +149,4 @@ float-arrays combinators.private ;
\ >be { { fixnum bignum } fixnum } "specializer" set-word-prop
\ (buffer-until) { fixnum fixnum simple-alien string } "specializer" set-word-prop
\ search-buffer-until { fixnum fixnum simple-alien string } "specializer" set-word-prop