add test and add eof to lexer