2.2 Lexical Elements, Separators, and Delimiters
Static Semantics
The text of a
compilation
is divided into
lines.
In
general, the representation for an end of line is implementation defined.
However, a sequence of one or more
format_effectors
other than the character whose code point is 16#09# (CHARACTER TABULATION)
signifies at least one end of line.
In
some cases an explicit
separator is required to separate adjacent
lexical elements. A separator is any of a
separator_space,
a
format_effector, or the end of a line, as
follows:
The character whose code point is 16#09# (CHARACTER
TABULATION) is a separator except within a
comment.
The end of a line is always a separator.
One or more other_format
characters are allowed anywhere that a separator is; any such characters
have no effect on the meaning of an Ada program.
A
delimiter is either
one of the following characters:
& ' ( ) * + , – . / : ; < = > @ [ ] |
or one of the following
compound
delimiters each composed of two adjacent special characters
=> .. ** := /= >= <= << >> <>
The following names
are used when referring to compound delimiters:
delimiter | name
|
---|
=> | arrow
|
.. | double dot
|
** | double star, exponentiate
|
:= | assignment (pronounced: “becomes”)
|
/= | inequality (pronounced: “not
equal”)
|
>= | greater than or equal
|
<= | less than or equal
|
<< | left label bracket
|
>> | right label bracket
|
<> | box
|
Implementation Requirements
An implementation shall support lines of at least
200 characters in length, not counting any characters used to signify
the end of a line. An implementation shall support lexical elements of
at least 200 characters in length. The maximum supported line length
and lexical element length are implementation defined.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe