Numeric literals denote constant non-negative integers or reals. The types of
these literals are INTEGER, LONGINT, REAL,
LONGREAL, and EXTENDED.
A literal INTEGER has the form base_digits, where base is
one of ``2'', ``3'', ..., ``16'', and digits is a
non-empty sequence of the decimal digits 0 through 9 plus the
hexadecimal digits A through F. The ``base_'' can be
omitted, in which case base defaults to 10. The digits are
interpreted in the given base. Each digit must be less than base. For
example, 16_FF and 255 are equivalent integer literals.
If no explicit base is present, the value of the literal must be at most
LAST(INTEGER). If an explicit base is present, the value of the
literal must be less than 2^Word.Size, and its interpretation uses the
convention of the Word interface. For example, on a 32-bit two's
complement machine, 16_FFFFFFFF and -1 represent the same value.
A literal LONGINT has the form integer L, where integer
has the same form as a literal INTEGER. If no explicit base is
present, the value of the literal must be at most LAST(LONGINT). If an
explicit base is present, the value of the literal must be less than
2^Long.Size, and its interpretation uses the convention of the
Long interface. For example, the LONGINT having the value zero
would be written 0L.
A literal REAL has the form decimal E exponent, where
decimal is a non-empty sequence of decimal digits followed by a decimal
point followed by a non-empty sequence of decimal digits, and exponent
is a non-empty sequence of decimal digits optionally beginning with a +
or -. The literal denotes decimal times 10^exponent. If
``E exponent'' is omitted, exponent defaults to 0.
LONGREAL and EXTENDED literals are like REAL literals,
but instead of E they use D and X respectively.
Case is not significant in any letter in a numeric literal. Embedded spaces are not allowed in a numeric literal.
For example, 1.0 and 0.5 are valid, 1. and .5 are
not; 6.624E-27 is a REAL, and 3.1415926535d0 a
LONGREAL.
m3-support@elego.de