Read whitespace-separated tokens from a stream