The characters space, tab, newline, and return are called
whitespace characters. Whitespace is used as necessary to separate
lexical symbols, such as integers, identifiers, or keywords. For example
Thorondor
is a single identifier, while Th or ondor
is the keyword
or
between the two identifiers Th
and ondor
. Whitespace may occur
between any two symbols, but not within a symbol. Two or more adjacent
whitespaces are equivalent to a single whitespace. Apart from the role
as separator of symbols, whitespaces are otherwise insignificant.
Whitespaces may also occur inside a string, where they are significant.
Whitespaces should also be used freely for improved readability.
A comment starts with the character #
, which is sometimes called
sharp or hatch, and continues to the end of the line on which the comment
character appears. The whole comment, including #
and the newline
character is treated as a single whitespace. Inside a string, the
comment character #
looses its role and is just an ordinary character.
For example, the following statement
if i<0 then a:=-i;else a:=i;fi;
is equivalent to
if i < 0 then # if i is negative a := -i; # take its inverse else # otherwise a := i; # take itself fi;
(which by the way shows that it is possible to write superfluous comments). However the first statement is not equivalent to
ifi<0thena:=-i;elsea:=i;fi;
since the keyword if
must be separated from the identifier i
by a
whitespace, and similarly then
and a
, and else
and a
must be
separated.
GAP 3.4.4