Basic Lexical Analyzer by Chuck Liang. See Docs.