: str<> str= 0= ; : free-string drop free throw ; : type-until: ( "delimiter" "...<\n"delimiter">" -- ) parse-word save-mem begin 0 parse 2over 2over str<> while type refill if cr then repeat 2drop free-string ; type-until: EOF The first line, and "the second" -- a third line, and here's EOF: EOF