fix negative, exponent, and floats
more tests and account for positive/negative numbers and illegal tokens