<div>You need to parse the source to get this information - example ...</div><div><br></div><div>-module(spec).</div><div>-compile(export_all).</div><div><br></div><div>test() -></div><div>    F = "/Users/joe/nobackup/installed/otp_src_R15B/lib/stdlib/src/lists.erl",</div>
<div>    {ok, L} = epp:parse_file(F, "", ""),</div>
<div>    [dump(I) || I <- L].</div><div><br></div><div>dump({attribute,_,spec,S} = Form) -></div><div>    Str = erl_pp:form(Form),</div><div>    io:format("~s~n",[Str]);</div><div>dump(_) -></div><div>
    void.</div>
<div><br></div><div><br></div><div>When I ran this I got</div><div><br></div><div><div>-spec append(List1, List2) -> List3</div><div>                when</div><div>                    is_subtype(List1, [T]),</div><div>

                    is_subtype(List2, [T]),</div><div>                    is_subtype(List3, [T]),</div><div>                    is_subtype(T, term()).</div><div>...</div></div><div>etc.</div><div><br></div><div>epp:parse parses the source. erl_pp pretty prints the forms in the parse tree.</div>
<div><br></div><div>If you take a look at the forms returned by erl_pp you should get the idea ...</div><div><br></div><div>Cheers</div><div><br></div><div>/Joe</div>
<div><br></div><div><br></div><br><div class="gmail_quote">On Sun, Feb 3, 2013 at 5:55 PM, Alessandro Sivieri <span dir="ltr"><<a href="mailto:alessandro.sivieri@gmail.com" target="_blank">alessandro.sivieri@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>I was wondering if there is a way to get the function specs (-spec tag) from source files (I guess they are not translated into something in the compiled files).</div>

<div>I would like to create an automatic generator of Web forms for an application where Erlang modules are installed and their functions executed (I'm not boring you with the application details), and it would be nice to get the function parameter types "automatically" from the source, provided that developers write the correct signature in the tag.</div>



<div>Maybe a parse transform module could be useful?<span><font color="#888888"><br clear="all"><div><br></div>-- <br>Sivieri Alessandro<br><a href="mailto:alessandro.sivieri@gmail.com" target="_blank">alessandro.sivieri@gmail.com</a><br>

<a href="http://sivieri.wordpress.com/" target="_blank">http://sivieri.wordpress.com/</a><br>


</font></span></div></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br>