SHOW:
|
|
- or go back to the newest paste.
| 1 | -module(esyntax). | |
| 2 | -compile(export_all). | |
| 3 | ||
| 4 | f() -> | |
| 5 | - | FunctionBuilder = eaopweaver:function_builder(get_send_msg_info), |
| 5 | + | FunctionBuilder = function_builder(get_send_msg_info), |
| 6 | - | ClauseBuilder = eaopweaver:clause_builder([], none), |
| 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 |