Implement a reader interface, so we can lex from io.Reader