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