finish lexer without fully test