2 decimal_literal ::= numeral [.numeral] [exponent]
5 An exponent for an integer literal shall not have a minus sign.
5.a Ramification: Although this rule is in this subclause, it applies also to the next subclause.
6.a Ramification: Although these rules are in this subclause, they apply also to the next subclause.
8 Examples of decimal literals:
9 12 0 1E6 123_456 -- integer literals 9.0 12.0 0.0 0.456 3.14159_26 -- real literals
9.a We have changed the syntactic category name integer to be numeral. We got this idea from ACID. It avoids the confusion between this and integers. (Other places don't offer similar confusions. For example, a string_literal is different from a string.)
We may implement a pragma to allow the syntax 1E-1 to write 0.1, although this is not legal Ada, it makes sense to accept such. (The legal syntax is 1.0E-1)
The largest accepted numbers are limited by the length of a literal which is limited to 4096 characters (see 14 and 14.a in §2.2). Obviously 1E999... followed by 4094 '9' characters is already a quite large number (i.e. 10 power (10 power 4094)) Very large numbers are likely to break the compilation with an out of heap error.