: unparsed-start ( -- addr )
source drop >in @ + ;
: input-eof ( -- 0 | -1 )
unparsed-start source + = ;
: next-input-character ( -- char )
unparsed-start c@ >in @ 1+ >in ! ;
\ search the character char
\ addr1: start of the input buffer (unparsed on word enter)
\ addr2: address of the character or end of input buffer
: search-char ( char -- addr1 addr2 )
>r unparsed-start
begin
input-eof if r> drop unparsed-start exit then
next-input-character r@ = if r> drop unparsed-start 1- exit then
again ;
\ same as Forth "parse", see http://claymore.engineer.gvsu.edu/~steriana/Software/pf11/ANS/dpans6.htm#6.2.2008
: parse
search-char
over - ;
\ usage example
char ' parse ab'