通常のErlang属性は、解析の変換によって変更できます。これはプリプロセッサによって処理されるため、 "-define"属性には適用されません。ファイル自体を変更せずにすべてのマクロの値を変更したい場合はどうしますか?"-define" Erlang属性(マクロ定義)の値を変更するには?
は、理想的には私は次のような効果を持つことになり、コンパイラのいくつかの修正バージョンを呼びたい:
入力して実行...
...
-define(constant, 45).
-define(debug(X), io:format(X)).
...
?debug(?constant) % Line: 7
...
...とパラメータ...
something:external
結果ではなく、いくつかの抽象的な形だろう...
{call,7,
{remote,7,{atom,7,io},{atom,7,format}},
[{integer,7,45}]}
...必要があります:もちろん
{call,7,
{remote,7,{atom,7,something},{atom,7,external}},
[{call,7,
{remote,7,{atom,7,something},{atom,7,external}},
[]}]}
を結果のコードは、おそらく実行可能ではないだろうが、マクロの使用にいくつかの「品質」の分析を可能にすることができます。