Next: Debugging, Previous: Definitions, Up: Top [Contents][Index]
Macros, expanding to plain text, perhaps with arguments, are not quite enough. We would like to have macros expand to different things, based on decisions taken at run-time. For that, we need some kind of conditionals. Also, we would like to have some kind of loop construct, so we could do something a number of times, or while some condition is true.
| • Ifdef: | Testing if a macro is defined | |
| • Ifelse: | If-else construct, or multibranch | |
| • Shift: | Recursion in m4
| |
| • Forloop: | Iteration by counting | |
| • Foreach: | Iteration by list contents | |
| • Stacks: | Working with definition stacks | |
| • Composition: | Building macros with macros |