In practically all programming languages, the parser recognizes (and usually ignores) the spaces, new lines, and other meaningless characters that exist between tokens. For instance, in the code
If Done
Then |
the fact that there are two spaces between the 'If' and 'Done', a new line after 'Then', and multiple space before 'Counter' is irrelevant.
From the parser's point of view (in particular the Deterministic Finite Automata that
it uses) these whitespace characters are recognized as a special terminal which can
be discarded. In GOLD, this terminal is simply called the Whitespace terminal and can be
defined to whatever is needed. If the Whitespace Terminal is not defined explicitly in the
grammar, it will be implicitly declared as one or more of the characters in the pre-defined Whitespace set: {Whitespace}+.
Normally, you would not need to worry about the Whitespace terminal unless you are designing a language where the end of a line is significant. This is the case with Visual Basic, BASIC and many, many others. The proper declaration can be seen in an example.