Inconsistency in definition of float literals
7.3.2.3 says:
Floating-point literals are denoted in decimal using the following format:
["+"|"-"]number[.number]["e"|"E"["+"|"-"]number]
However, the EBNF grammar defines it the following way:
float-literal ::= ['+' | '-'] digit* '.' digit+ [('e' | 'E') ['+'|'-'] digit+]
making the dot mandatory. I suggest going with the former, since that's how it is defined in pretty much every other language.