cue/scanner: fix JSON compliance

Exponents with a captial 'E' were not handled
correctly.

Disallow multipliers ending with E, Y, or Z for
now to somplify implementation.

The formatter now rewrites a capital E in
exponents to e.

Change-Id: I1b1342e995b3f6f71d5700807feb5c672b010eca
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/3481
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/doc/ref/spec.md b/doc/ref/spec.md
index 2df912c..f6205c9 100644
--- a/doc/ref/spec.md
+++ b/doc/ref/spec.md
@@ -322,13 +322,17 @@
 binary_lit  = "0b" binary_digit { binary_digit } .
 hex_lit     = "0" ( "x" | "X" ) hex_digit { [ "_" ] hex_digit } .
 octal_lit   = "0o" octal_digit { [ "_" ] octal_digit } .
-multiplier  = ( "K" | "M" | "G" | "T" | "P" | "E" | "Y" | "Z" ) [ "i" ]
+multiplier  = ( "K" | "M" | "G" | "T" | "P" ) [ "i" ]
 
 float_lit   = decimals "." [ decimals ] [ exponent ] |
               decimals exponent |
               "." decimals [ exponent ].
 exponent  = ( "e" | "E" ) [ "+" | "-" ] decimals .
 ```
+<!--
+TODO: consider allowing Exo (and up), if not followed by a sign
+or number. Alternatively one could only allow Ei, Yi, and Zi.
+-->
 
 ```
 42