cue/scanner: reject leading-zero integers followed by range operator
The scanner failed to report "illegal integer number" for tokens like
00, 077, or 078 when followed by the range operator (...). The dot
lookahead for float detection jumped to the fraction label, which
detected the ".." range and exited without the leading-zero check.
Fix by checking for ".." before the float-continuation goto, so that
leading-zero integers are always rejected regardless of what follows.
Found via fuzzing.
Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
Change-Id: I0bfe1200c2522ad0646242330b89103e8fa76f73
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1235296
Reviewed-by: Matthew Sackman <matthew@cue.works>
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>