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