M4 (informatyka)
M4 – popularny na Uniksach makroprocesor (program który przetwarza strumień danych – np. kod źródłowy programu – w celu dostosowania do konkretnych potrzeb). Jest używany m.in. przez sendmail i autoconf.
M4 czyta standardowe wejście, wykonuje zapisane w nim komendy i drukuje wynik na standardowe wyjście. Wszystko co nie jest komendą jest kopiowane bez zmian.
Ważniejsze wbudowane komendy to:
dnl– wszystko do końca linii jest komentarzem, którego nie należy kopiować na wyjście. Ważne:dnldziała jedynie jako pojedynczy wyraz; oznacza to, żeednlzostanie zinterpretowane jako zwykły tekst.eval(wyrażenie)– oblicza wyrażenie arytmetycznedefine(nazwa,definicja)– definiowanie własnych komenddefn(nazwa)– drukuje treść makranazwana standardowe wyjścieinclude(nazwa pliku)– kopiuje zawartość wskazanego pliku na standardowe wyjście
Otoczenie wyrażenia za pomocą znaków ` oraz ' skutkuje oznaczeniem go jako tekst niezmienny, np.
define(foo, $1 $2 $3) foo(1, 2, 3) `foo(4, 5, 6)'
wynikiem będzie:
1 2 3 foo(4, 5, 6)
Przykład
define(foo,$1 ma $2)dnl define(bar,Kasia)dnl foo(Ala,kota) foo(bar,psa) 2 + 2 = eval(2+2) defn(bar)
co w wyniku daje:
Ala ma kota Kasia ma psa 2 + 2 = 4 Kasia