lexer: add end of input token