I shall explain here how the separators are handled by the Amool compiler/parser.
(Whites include spaces, tabs and linefeeds. More white stuff might be added depending
on implementation)
As you should now know, an amool code is a sequence of lexical elements separated
by white symbols.
This means that you are forced to put at least one white between each pair of lexical
elements.
There are three (simple, I hope) rules which the compiler/parser uses for deciding which
separator should be output.
1: The two characters adjacent to a definition delimiter (header or footer)
are ignored
(like &=super or && or &+dong)
We can somehow say that these two adjacent characters are part of each of these
symbols.
2: If two definitions are only separated by whites, then these are all
ignored
A defintion being a &(+/=)... ... && block, if two definitions are
only separated by whites, then none of these whites will be output at execution.
This allows you to have a lot of definition, to arrange them as you want, without having Amool output all the linefeeds you put between these definitions.
An example, where I
&+one~dummy~definition~&&P
P
P
~~~~~~~&+yadd~Yet~Another~Dummy~Definition~&&P
P
Some~text~and~maybe~some~@call~...P
P
&+last~over~&&P
In this case, all stuff between one and yadd is removed
(because it's only white), but not between yadd and last.
If you want to define a symbol to be a space, then you can for instance put three spaces
3: The two extreme characters of an argument value (inside a class call) are
ignored
When you are calling a class with arguments, you are forced to put at least a separator
at the left and the right of the values you give. So Amool will take these two extreme
separators away before transmitting them to the class.
For instance: (Again, I wrote spaces as tildes for readability)
@function(~abc~&,~~@d~&,~&,~~&,~~~&)
The arguments transmitted here are (unquoted, of course) "abc", "~@d", "", "" (two
spaces, both are removed), "~" (three separators, the extreme ones are removed, and only
the central space is kept)
Although these rules might look a bit arbitrary at first look, you should find them quite natural when used :-)