[erlang-questions] Erlang AST with locations

Robert Virding rvirding@REDACTED
Wed Oct 10 21:29:44 CEST 2007


On 05/10/2007, Joel Reymont <joelr1@REDACTED> wrote:
>
> The result of erl_scan:string/1 has line numbers in it but these get
> lost once erl_parse:parse/1 runs.
>
> I would like to have an AST with locations, is there a way to
> accomplish that?


Sorry I don't really understand what you mean. If you do

28> {ok,Ts,_}=erl_scan:string("abc([a])->\n1.").
{ok,[{atom,1,abc},
     {'(',1},
     {'[',1},
     {atom,1,a},
     {']',1},
     {')',1},
     {'->',1},
     {integer,2,1},
     {dot,2}],
    2}
29> erl_parse:parse(Ts).
{ok,{function,1,
              abc,
              1,

[{clause,1,[{cons,1,{atom,1,a},{nil,1}}],[],[{integer,2,1}]}]}}

you that you do have the line numbers in the AST. If you use parse_term,
however, line numbers are removed as it is the term which returned not the
AST.

On a related note, I think it's a bummer that there's no
> erl_scan:binary/1.


True, true. One of these years ...

Robert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20071010/70707a6b/attachment.htm>


More information about the erlang-questions mailing list