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 ...

Externí odkazy