Generating type specs programmatically
Viktor Söderqvist
viktor@REDACTED
Mon Dec 7 15:25:06 CET 2020
Hi! Generated examples of all of Erlang's AST is in the generated
README.md of this repo:
https://github.com/zuiderkwast/erlang_abstract_format
Some examples:
-spec my_function() -> ok.
{attribute,54,spec,
{{my_function,0},
[{type,54,'fun',[{type,54,product,[]},{atom,54,ok}]}]}}
-spec my_function(A :: atom()) -> B when B :: boolean().
{attribute,55,spec,
{{my_function,1},
[{type,55,bounded_fun,
[{type,55,'fun',
[{type,55,product,
[{ann_type,55,[{var,55,'A'},{type,55,atom,[]}]}]},
{var,55,'B'}]},
[{type,55,constraint,
[{atom,55,is_subtype},
[{var,55,'B'},{type,55,boolean,[]}]]}]]}]}}
If some syntactic element is missing, please let me know.
BRs,
Viktor
On 2020-12-05 21:24, Guilherme Andrade wrote:
> All is well so far, but now I want to generate type specs and function
> specs with which to annotate the generated code - and I can't for the
> life of me figure out how to do it within `erl_syntax`.
More information about the erlang-questions
mailing list