; ( c -- addr ) Tools ; R( -- ) ; skip leading delimiter characters and parses TIB to the next delimiter. copy the word into PAD VE_WORD: .db $04, "word",0 .dw VE_HEAD .set VE_HEAD = VE_WORD XT_WORD: .dw DO_COLON PFA_WORD: .dw XT_TO_R ; ( -- ) .dw XT_SOURCE ; ( -- addr len) .dw XT_G_IN ; ( -- addr len >in) .dw XT_FETCH .dw XT_SLASHSTRING ; ( -- addr' len' ) .dw XT_SWAP ; ( -- len' addr' ) .dw XT_OVER ; ( -- len' addr' len') .dw XT_R_FETCH ; ( -- len' addr' len' c) .dw XT_CSKIP ; ( -- len' addr'' len'') .dw XT_ROT ; ( -- addr'' len'' len') .dw XT_OVER ; ( -- addr'' len'' len' len'') .dw XT_MINUS ; ( -- addr'' len'' dlen) .dw XT_G_IN ; ( -- addr'' len'' dlen >in) .dw XT_PLUSSTORE ; ( -- addr'' len'') .dw XT_R_FROM ; ( -- addr'' len'' c) .dw XT_CSCAN ; ( -- addr''' len''') .dw XT_DUP ; ( -- addr''' len''' len''') .dw XT_1PLUS ; .dw XT_G_IN .dw XT_PLUSSTORE ; ( -- addr''' len''') .dw XT_PAD ; ( -- addr''' len''' pad) .dw XT_OVER ; ( -- addr''' len''' pad len''') .dw XT_OVER ; ( -- addr''' len''' pad len''' pad) .dw XT_CSTORE ; ( -- addr''' len''' pad) .dw XT_1PLUS ; ( -- addr''' len''' pad+1) .dw XT_SWAP ; ( -- addr''' pad+1 len''') .dw XT_CMOVE_G ; ( --- ) .dw XT_PAD .dw XT_ZERO ; append a zero byte. find/icompare _does_ need it .dw XT_PAD .dw XT_DUP .dw XT_CFETCH .dw XT_PLUS ; ( -- pad pad+len ) .dw XT_1PLUS .dw XT_CSTORE .dw XT_EXIT