Deleting whitespace in input
============================
The builtin `dnl' reads and discards all characters, up to and
including the first newline:
dnl
and it is often used in connection with `define', to remove the newline
that follow the call to `define'. Thus
define(`foo', `Macro `foo'.')dnl A very simple macro, indeed.
foo
=>Macro foo.
The input up to and including the next newline is discarded, as
opposed to the way comments are treated (Note:Comments).
Usually, `dnl' is immediately followed by an end of line or some
other whitespace. GNU `m4' will produce a warning diagnostic if `dnl'
is followed by an open parenthesis. In this case, `dnl' will collect
and process all arguments, looking for a matching close parenthesis.
All predictable side effects resulting from this collection will take
place. `dnl' will return no output. The input following the matching
close parenthesis up to and including the next newline, on whatever
line containing it, will still be discarded.