( ) Separator Handling ( )

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 replaced spaces by tildes "~" and added a P at line feeds for clarity; I highlighted stuff that will not be output)

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)
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 :-)

Maxime Gamboni <> Last compiled : Wed Apr 23 21:53:44 CEST 2003