m4: Macro expansion

1 
1 4.5 Macro expansion
1 ===================
1 
1 When the arguments, if any, to a macro call have been collected, the
1 macro is expanded, and the expansion text is pushed back onto the input
1 (unquoted), and reread.  The expansion text from one macro call might
1 therefore result in more macros being called, if the calls are included,
1 completely or partially, in the first macro calls' expansion.
1 
1    Taking a very simple example, if FOO expands to 'bar', and BAR
1 expands to 'Hello', the input
1 
1      $ m4 -Dbar=Hello -Dfoo=bar
1      foo
1      =>Hello
1 
1 will expand first to 'bar', and when this is reread and expanded, into
1 'Hello'.
1