CLCS

Numbers as Tokens

When a token is read, it is interpreted as a number or symbol. The token is interpreted as a number if it satisfies the syntax for numbers specified in Figure 2–9.

 numeric-token ::= !integer | !ratio | !float                                              
 integer       ::= [sign] {decimal-digit}^+ decimal-point | [sign] {digit}^+               
 ratio         ::= [sign] {digit}^+ slash {digit}^+                                        
 float         ::= [sign] {decimal-digit}* decimal-point {decimal-digit}^+ [!exponent]                    | [sign] {decimal-digit}^+ [decimal-point {decimal-digit}*] !exponent
 exponent      ::= exponent-marker [sign] {digit}^+                                          sign—a sign.  slash—a slash  decimal-point—a dot.  exponent-marker—an exponent marker.  decimal-digit—a digit in radix 10.  digit—a digit in the current input radix.
Figure 2–9: Syntax for Numeric Tokens