parse transform options

55 visualizzazioni
Passa al primo messaggio da leggere

Serge

da leggere,
20 lug 2021, 13:35:2520/07/21
a Erlang Questions
How do you pass options (2nd argument) to a parse transform?

Documentation (http://erlang.org/doc/man/erl_id_trans.html#parse_transform-2) states that a custom parse transform module should export function that takes two parameters:

parse_transform(Tree, Options) ->
   ...

but there doesn't seem to be a way to pass the transform options from the compiler, i.e.:

erlc +'{parse_transform,Module}' File.erl

What am I missing?

Mikael Karlsson

da leggere,
20 lug 2021, 22:35:4720/07/21
a Serge, Erlang Questions
> How do you pass options (2nd argument) to a parse transform?

The options are the compile options.
If you need to pass custom options to the parse transform you can use -D :
-- test_parse.erl
-module(test_parse).
-export([parse_transform/2]).

parse_transform(Forms, Options) ->
io:format("Options: ~p~n", [Options]),
Forms.

-- testt.erl
-module(testt).
-export([test/0]).
-compile({parse_transform, test_parse}).

test() -> hoho.
--
~/work/erlang$ erlc -Dhejhopp -pa . testt.erl
Options: [report_warnings,
{d,hejhopp},
report_errors,
{cwd,"/home/mikael/work/erlang"},
{outdir,"/home/mikael/work/erlang"}]

Serge

da leggere,
21 lug 2021, 01:03:3221/07/21
a Mikael Karlsson, Serge, Erlang Questions
Excellent! Thank you very much!
Rispondi a tutti
Rispondi all'autore
Inoltra
0 nuovi messaggi