lexer for char and floats is passing tests