aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2013-09-23 09:45:00 +0200
committerAnders Svensson <[email protected]>2013-11-28 17:27:27 +0100
commitda973668bcfee7cba0aa6e0c498fee4aa1b24cce (patch)
treeabe22ac0166ce795a5cf1815670ceb13c6c4c064
parenta3fa81eafff105086cf3f0c942c5247686edac28 (diff)
downloadotp-da973668bcfee7cba0aa6e0c498fee4aa1b24cce.tar.gz
otp-da973668bcfee7cba0aa6e0c498fee4aa1b24cce.tar.bz2
otp-da973668bcfee7cba0aa6e0c498fee4aa1b24cce.zip
Make forms a separate output from diameter_codegen
Instead of being output as a consequence of a debug option.
-rwxr-xr-xlib/diameter/bin/diameterc5
-rw-r--r--lib/diameter/src/compiler/diameter_codegen.erl10
-rw-r--r--lib/diameter/src/compiler/diameter_make.erl3
3 files changed, 9 insertions, 9 deletions
diff --git a/lib/diameter/bin/diameterc b/lib/diameter/bin/diameterc
index cae2bcedbe..d4dd3153c5 100755
--- a/lib/diameter/bin/diameterc
+++ b/lib/diameter/bin/diameterc
@@ -137,9 +137,8 @@ arg(["-E" | Args], #argv{output = Output} = A) ->
arg(["-H" | Args], #argv{output = Output} = A) ->
arg(Args, A#argv{output = lists:delete(hrl, Output)});
-arg(["-d" | Args], #argv{options = Opts, output = Output} = A) ->
- arg(Args, A#argv{options = [debug | Opts],
- output = [dict | Output]});
+arg(["-d" | Args], #argv{output = Output} = A) ->
+ arg(Args, A#argv{output = [dict, forms | Output]});
arg([[$- = M, C, H | T] | Args], A) %% clustered options
when C /= $i, C /= $o, C /= $- ->
diff --git a/lib/diameter/src/compiler/diameter_codegen.erl b/lib/diameter/src/compiler/diameter_codegen.erl
index e606e61052..325a37e20d 100644
--- a/lib/diameter/src/compiler/diameter_codegen.erl
+++ b/lib/diameter/src/compiler/diameter_codegen.erl
@@ -53,12 +53,11 @@
when File :: string(),
ParseD :: orddict:orddict(),
Opts :: list(),
- Mode :: dict | erl | hrl.
+ Mode :: dict | forms | erl | hrl.
from_dict(File, ParseD, Opts, Mode) ->
Outdir = proplists:get_value(outdir, Opts, "."),
putr(verbose, lists:member(verbose, Opts)),
- putr(debug, lists:member(debug, Opts)),
codegen(File, ParseD, Outdir, Mode).
%% Optional reports when running verbosely.
@@ -115,10 +114,11 @@ gen(dict, ParseD, _Mod, Path) ->
gen(hrl, ParseD, Mod, Path) ->
write(Path ++ ".hrl", gen_hrl(Mod, ParseD));
+gen(forms, ParseD, Mod, Path) ->
+ write_term(Path ++ ".F", [erl_forms(Mod, ParseD)]);
+
gen(erl, ParseD, Mod, Path) ->
- Forms = erl_forms(Mod, ParseD),
- getr(debug) andalso write_term(Path ++ ".F", [Forms]),
- write(Path ++ ".erl", [header(), prettypr(Forms), $\n]).
+ write(Path ++ ".erl", [header(), prettypr(erl_forms(Mod, ParseD)), $\n]).
write(Path, T) ->
write(Path, "~s", T).
diff --git a/lib/diameter/src/compiler/diameter_make.erl b/lib/diameter/src/compiler/diameter_make.erl
index f77273d3a5..e4486973dd 100644
--- a/lib/diameter/src/compiler/diameter_make.erl
+++ b/lib/diameter/src/compiler/diameter_make.erl
@@ -61,7 +61,8 @@ codec(File, Opts) ->
make(File,
Opts,
Dict,
- [dict || lists:member(debug, Opts)] ++ [erl, hrl]);
+ lists:append([[dict, forms] || lists:member(debug, Opts)])
+ ++ [erl, hrl]);
{error, _} = E ->
E
end.