English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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}]).