Advertisement
Guest User

erl_syntax problems

a guest
Mar 13th, 2013
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -module(esyntax).
  2. -compile(export_all).
  3.  
  4. f() ->
  5.     FunctionBuilder = function_builder(get_send_msg_info),
  6.     ClauseBuilder = clause_builder([], none),
  7.     FunctionBuilder(ClauseBuilder(erl_syntax:list(erl_syntax:atom(abz)))).
  8.  
  9. function_builder(FunctionName) ->
  10.     fun(Clauses) ->
  11.             erl_syntax:function(erl_syntax:atom(FunctionName), Clauses)
  12.     end.
  13.  
  14. clause_builder(Patterns, Guard) ->
  15.     fun(Body) ->
  16.             erl_syntax:clause(Patterns, Guard, Body)
  17.     end.
  18.  
  19. %%%%%%%%%%%%%
  20.  
  21. 55> SyntaxTree = esyntax:f().
  22. {tree,function,
  23.     {attr,0,[],none},
  24.     {function,
  25.         {tree,atom,{attr,0,[],none},get_send_msg_info},
  26.         {tree,clause,
  27.             {attr,0,[],none},
  28.             {clause,[],none,
  29.                 {tree,list,
  30.                     {attr,0,[],none},
  31.                     {list,{tree,atom,{attr,0,[],none},abz},none}}}}}}
  32. 56> erl_syntax:is_tree(SyntaxTree).
  33. true
  34. 57> erl_syntax:type(SyntaxTree).
  35. function
  36. 58> erl_syntax:revert(SyntaxTree).
  37. ** exception error: no function clause matching
  38.                     erl_syntax:'-revert/1-lc$^1/1-1-'({tree,clause,
  39.                                                        {attr,0,[],none},
  40.                                                        {clause,[],none,
  41.                                                         {tree,list,
  42.                                                          {attr,0,[],none},
  43.                                                          {list,
  44.                                                           {tree,atom,
  45.                                                            {attr,0,[],none},
  46.                                                            abz},
  47.                                                           none}}}})
  48.      in function  erl_syntax:'-revert/1-lc$^0/1-0-'/1
  49.      in call from erl_syntax:'-revert/1-lc$^0/1-0-'/1
  50.      in call from erl_syntax:revert/1
  51. 59> erl_syntax:revert_forms([SyntaxTree]).
  52. ** exception exit: {function_clause,
  53.                     [{erl_syntax,'-revert/1-lc$^1/1-1-',
  54.                       [{tree,clause,
  55.                         {attr,0,[],none},
  56.                         {clause,[],none,
  57.                          {tree,list,
  58.                           {attr,0,[],none},
  59.                           {list,{tree,atom,{attr,0,[],none},abz},none}}}}]},
  60.                      {erl_syntax,'-revert/1-lc$^0/1-0-',1},
  61.                      {erl_syntax,'-revert/1-lc$^0/1-0-',1},
  62.                      {erl_syntax,revert,1},
  63.                      {erl_syntax,revert_forms_1,1},
  64.                      {erl_syntax,revert_forms,1},
  65.                      {erl_eval,do_apply,5},
  66.                      {shell,exprs,7}]}
  67.      in function  erl_syntax:revert_forms/1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement