The document discusses the process of lexical analysis in compiler design. It explains that a lexical analyzer takes source code as input and outputs tokens. It uses two pointers - a begin pointer that points to the start of each token, and a forward pointer that moves through the input string character by character. The document then describes two approaches for buffering input - a single buffer scheme that has issues if a token spans the buffer, and a two buffer scheme that avoids this issue by using two buffers and switching between them.