Erlang - Preprocessori
Prima che un modulo Erlang venga compilato, viene automaticamente elaborato dal preprocessore Erlang. Il preprocessore espande tutte le macro che potrebbero essere nel file di origine e inserisce i file include necessari.
Normalmente, non sarà necessario guardare l'output del preprocessore, ma in circostanze eccezionali (ad esempio, quando si esegue il debug di una macro difettosa), si potrebbe voler salvare l'output del preprocessore. Per vedere il risultato della pre-elaborazione del modulosome_module.erl dare il comando della shell del sistema operativo.
erlc -P some_module.erl
Ad esempio, supponiamo di avere il seguente file di codice:
Esempio
-module(helloworld).
-export([start/0]).
-include("user.hrl").
start() ->
io:fwrite("~w",[?macro1(1,2)]).
E se eseguiamo il seguente comando dalla riga di comando:
erlc –P helloworld.erl
Un file chiamato helloworld.Pverrebbe generato. Se apri questo file, troverai il seguente contenuto che è ciò che il preprocessore compilerà.
-file("helloworld.erl", 1). -module(helloworld).
-export([start/0]).
-file("user.hrl", 1).
-file("helloworld.erl", 3).
start() ->
io:fwrite("~w", [{1 + 2}]).