Re: Generating type specs programmatically
Guilherme Andrade <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CAA5f+NV-VYgKtD-W994eqNR+Dt2SgW2xoxm9TP5ym9n8t-bWCA@mail.gmail.com> |
Thanks for the suggestion! After a quick glance, Typer seems to be directly generating string representations of the specs - that is, not actually manipulating the AST of the modules it works on by inserting nodes that represent said specs. That's a shame, but it's what I will also do if I don't find a more elegant way to do it through `erl_syntax`. Oh well. On Sat, 5 Dec 2020 at 22:29, Fred Hebert <[email protected]> wrote: > You might want to look at Typer, since it's whole purpose is to generate > type specs for code that you can directly put in code. > > On Sat, Dec 5, 2020 at 3:25 PM Guilherme Andrade <[email protected]> wrote: > >> Hello list, >> >> I've been working on a code-generating tool, leveraging `erl_syntax`[1] >> to build an AST containing arbitrary Erlang functions; I then use >> `erl_pp`[2] to generate the corresponding Erlang code and write the result >> onto a source code file. >> >> 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`. >> >> All of the different attempts I've made end up either crashing within >> `erl_syntax` or `erl_pp`, or at best result in INVALID-FORM literals within >> the generated code. >> >> Would any of you be able to point me in the right direction? >> >> Thanks in advance! >> >> [1]: http://erlang.org/doc/man/erl_syntax.html >> [2]: https://erlang.org/doc/man/erl_pp.html >> >> -- >> Guilherme >> > -- Guilherme