Erlang - Препроцессоры
Перед компиляцией модуля Erlang он автоматически обрабатывается препроцессором Erlang. Препроцессор разворачивает все макросы, которые могут быть в исходном файле, и вставляет все необходимые включаемые файлы.
Обычно вам не нужно смотреть на вывод препроцессора, но в исключительных случаях (например, при отладке ошибочного макроса) вы можете захотеть сохранить вывод препроцессора. Чтобы увидеть результат предварительной обработки модуляsome_module.erl дать команду оболочки ОС.
erlc -P some_module.erl
Например, предположим, что у нас есть следующий файл кода -
пример
-module(helloworld).
-export([start/0]).
-include("user.hrl").
start() ->
io:fwrite("~w",[?macro1(1,2)]).
И если мы выполнили следующую команду из командной строки -
erlc –P helloworld.erl
Файл под названием helloworld.Pбудет сгенерирован. Если вы откроете этот файл, вы найдете следующее содержимое, которое препроцессор скомпилирует.
-file("helloworld.erl", 1). -module(helloworld).
-export([start/0]).
-file("user.hrl", 1).
-file("helloworld.erl", 3).
start() ->
io:fwrite("~w", [{1 + 2}]).