Preprocessador M4
Date: 2019-12-23Last modified: 2022-10-07
m4 é uma linguagem de macro desenvolvida pelo Dennis M. Ritchie
Definindo uma macro
O delimitador padrão é o backtick (`
) junto com o single quote ('
).
define(`yoo',`Hello World!')
I say this: yoo yoo yoo
Executando m4 nome_do_arquivo.m4
temos:
I say this: Hello World! Hello World! Hello World!
Definição com várias linhas
define(`header',
`
<html>
<head>
<meta charset="utf-8"/>
<title>Meu título</title>
</head>
')
Passando parâmetros
define(`my_value',`$1_file')
my_value(`test')
Use $1, $2, … para passar parâmetros:
test_file
Condicionais
ifelse(`first_text',`second_text',`true_action',`false_action')
No exemplo abaixo se my_filename
for index.html
então será gerado apenas
a palavra Home
, do contrário será gerado um link apontando para index.html
.
ifelse(my_filename,`index.html',`Home',`<a href="/index.html" title="To index page">Home</a>')
Delete tudo até a próxima nova linha
dnl uma opção para colocar comentários
dnl ou para garantir que não tem espaços extras
Incluir um arquivo
include(filename)
Operações matemáticas
define(decr,`eval($1-1)')