Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -module(esyntax).
- -compile(export_all).
- f() ->
- FunctionBuilder = function_builder(get_send_msg_info),
- ClauseBuilder = clause_builder([], none),
- FunctionBuilder(ClauseBuilder(erl_syntax:list(erl_syntax:atom(abz)))).
- function_builder(FunctionName) ->
- fun(Clauses) ->
- erl_syntax:function(erl_syntax:atom(FunctionName), Clauses)
- end.
- clause_builder(Patterns, Guard) ->
- fun(Body) ->
- erl_syntax:clause(Patterns, Guard, Body)
- end.
- %%%%%%%%%%%%%
- 55> SyntaxTree = esyntax:f().
- {tree,function,
- {attr,0,[],none},
- {function,
- {tree,atom,{attr,0,[],none},get_send_msg_info},
- {tree,clause,
- {attr,0,[],none},
- {clause,[],none,
- {tree,list,
- {attr,0,[],none},
- {list,{tree,atom,{attr,0,[],none},abz},none}}}}}}
- 56> erl_syntax:is_tree(SyntaxTree).
- true
- 57> erl_syntax:type(SyntaxTree).
- function
- 58> erl_syntax:revert(SyntaxTree).
- ** exception error: no function clause matching
- erl_syntax:'-revert/1-lc$^1/1-1-'({tree,clause,
- {attr,0,[],none},
- {clause,[],none,
- {tree,list,
- {attr,0,[],none},
- {list,
- {tree,atom,
- {attr,0,[],none},
- abz},
- none}}}})
- in function erl_syntax:'-revert/1-lc$^0/1-0-'/1
- in call from erl_syntax:'-revert/1-lc$^0/1-0-'/1
- in call from erl_syntax:revert/1
- 59> erl_syntax:revert_forms([SyntaxTree]).
- ** exception exit: {function_clause,
- [{erl_syntax,'-revert/1-lc$^1/1-1-',
- [{tree,clause,
- {attr,0,[],none},
- {clause,[],none,
- {tree,list,
- {attr,0,[],none},
- {list,{tree,atom,{attr,0,[],none},abz},none}}}}]},
- {erl_syntax,'-revert/1-lc$^0/1-0-',1},
- {erl_syntax,'-revert/1-lc$^0/1-0-',1},
- {erl_syntax,revert,1},
- {erl_syntax,revert_forms_1,1},
- {erl_syntax,revert_forms,1},
- {erl_eval,do_apply,5},
- {shell,exprs,7}]}
- in function erl_syntax:revert_forms/1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement