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: dnl działa jedynie jako pojedynczy wyraz; oznacza to, że ednl zostanie zinterpretowane jako zwykły tekst.
  • eval(wyrażenie) – oblicza wyrażenie arytmetyczne
  • define(nazwa,definicja) – definiowanie własnych komend
  • defn(nazwa) – drukuje treść makra nazwa na standardowe wyjście
  • include(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

Linki zewnętrzne

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.