m4 (makroprocesor)
m4 je jazyk pro zpracování maker, který navrhli Brian Kernighan a Dennis Ritchie v roce 1977. Jeho původním účelem byl překlad programů napsaných v dialektu Rational Fortran do běžného Fortranu.
V současnosti se používá v několika různých nástrojích pro vývoj software (např. Bison, Autoconf) a pro generování konfiguračních souborů (např. sendmail)
Použití
Makroprocesor kopíruje vstupní text na svůj výstup a při tom zpracovává nalezená makra. Pomocí vestavěných maker je možné provádět činnosti jako:
- nahrazování textu
- parameter substitution
- vkládání souborů
- manipulace s řetězci
- podmíněné vyhodnocování
- aritmetické výpočty
Příklad
Jednoduchý příklad, který by mohl být součástí knihovny pro generování HTML dokumentů. Ukazuje jak udělat automatické číslování kapitol:
define(`H2_COUNT', 0) define(`H2', `define(`H2_COUNT', incr(H2_COUNT))' dnl `<h2>H2_COUNT. $1</h2>') H2(První kapitola) …nějaký text… H2(Druhá kapitola) ... další text… H2(Závěr) ... konec ...
a výsledek po zpracování makroprocesorem:
<h2>1. První kapitola</h2> …nějaký text… <h2>2. Druhá kapitola</h2> ... další text… <h2>3. Závěr</h2> ... konec ...