lexer: support exponential notation

Still has a problem while `1.1e-9`, REPL prints 0.00000, it should prints a string: `1.1e-9`, but others is work well.