\ public domain : isspace? ( c -- f ) bl 1+ u< ; : isnotspace? ( c -- f ) isspace? 0= ; : xt-skip ( addr1 n1 xt -- addr2 n2 ) \ gforth \ skip all characters satisfying xt ( c -- f ) >r BEGIN dup WHILE over c@ r@ execute WHILE 1 /string REPEAT THEN r> drop ; : parse-name ( "name" -- c-addr u ) source >in @ /string ['] isspace? xt-skip over >r ['] isnotspace? xt-skip ( end-word restlen r: start-word ) 2dup 1 min + source drop - >in ! drop r> tuck - ;