简单指令的句法树:A = 2 + 3

时间:2010-12-22 23:16:56

标签: erlang

我想知道是否有人可以帮助我在erlang中绘制一个非常简单的指令的语法树:一个简单的赋值,如A = 2 + 3.当然使用http://svn.ulf.wiger.net/indent/trunk/erl_parse.yrl <时可用的erlang官方语法< / p>

感谢您的一切

1 个答案:

答案 0 :(得分:6)

您可以简单地使用Erlang自己的工具:

1> {ok, Toks, _} = erl_scan:string("A=2+3.").
{ok,[{var,1,'A'},
     {'=',1},
     {integer,1,2},
     {'+',1},
     {integer,1,3},
     {dot,1}],
    1}
2> {ok, [AST]} = erl_parse:parse_exprs(Toks).
{ok,[{match,1,
            {var,1,'A'},
            {op,1,'+',{integer,1,2},{integer,1,3}}}]}
3> AST.
{match,1,{var,1,'A'},{op,1,'+',{integer,1,2},{integer,1,3}}}