diff options
author | Björn Gustavsson <[email protected]> | 2012-12-14 14:08:12 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2013-01-22 19:20:09 +0100 |
commit | 60e73d24cfec506b966ff789c8420bc4f466f880 (patch) | |
tree | 48a076cd6cb72640b60841656b5de7e192ad026d /lib/asn1/src/asn1ct_gen.erl | |
parent | df9184eeb926f8e5c04b2a3974f9d274dcbffb04 (diff) | |
download | otp-60e73d24cfec506b966ff789c8420bc4f466f880.tar.gz otp-60e73d24cfec506b966ff789c8420bc4f466f880.tar.bz2 otp-60e73d24cfec506b966ff789c8420bc4f466f880.zip |
Add a mechanism for embedding run-time functions into the generated code
Diffstat (limited to 'lib/asn1/src/asn1ct_gen.erl')
-rw-r--r-- | lib/asn1/src/asn1ct_gen.erl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/asn1/src/asn1ct_gen.erl b/lib/asn1/src/asn1ct_gen.erl index 57b12ce186..67efbcc532 100644 --- a/lib/asn1/src/asn1ct_gen.erl +++ b/lib/asn1/src/asn1ct_gen.erl @@ -78,6 +78,7 @@ pgen_module(OutFile,Erules,Module, ErlFile = lists:concat([OutFile,".erl"]), Fid = fopen(ErlFile,[write]), put(gen_file_out,Fid), + asn1ct_func:start_link(), gen_head(Erules,Module,HrlGenerated), pgen_exports(Erules,Module,TypeOrVal), pgen_dispatcher(Erules,Module,TypeOrVal), @@ -86,6 +87,11 @@ pgen_module(OutFile,Erules,Module, pgen_partial_incomplete_decode(Erules), % gen_vars(asn1_db:mod_to_vars(Module)), % gen_tag_table(AllTypes), + emit([nl, + "%%%",nl, + "%%% Run-time functions.",nl, + "%%%",nl]), + asn1ct_func:generate(Fid), file:close(Fid), asn1ct:verbose("--~p--~n",[{generated,ErlFile}],Options). @@ -1160,6 +1166,9 @@ emit({var,Variable}) -> emit({asis,What}) -> format(get(gen_file_out),"~w",[What]); +emit({call,M,F,A}) -> + asn1ct_func:call(M, F, A); + emit(nl) -> nl(get(gen_file_out)); |