class XFORM_CODE


Flattened version is here



Public


Readable Attributes
attr after_yield:$AM_STMT;
attr calls:FLIST{$AM_EXPR};
**** Calls made out of the body.
attr if_encl_yield:AM_IF_STMT;
**** True if the yield is in the then branch.
attr loop_stmt:AM_LOOP_STMT;
**** The loop we stopped inside.
attr new_loop_stmt:AM_LOOP_STMT;
**** When transforming stuff inside a loop.
attr record_calls:BOOL;
****
attr return_val:$AM_EXPR;
**** Value returned in the code.
attr true_br_yield:BOOL;
**** The statements following the yield.
attr yield_val:$AM_EXPR;
**** Ditto for iterators.

Writable Attributes
attr new_loop_stmt:AM_LOOP_STMT;
**** When transforming stuff inside a loop.
attr record_calls:BOOL;
****

Features
create (subst:FMAP{AM_LOCAL_EXPR,AM_LOCAL_EXPR}):SAME
xform_expr (expr:$AM_EXPR):$AM_EXPR
xform_stmt (stmt:$AM_STMT):$AM_STMT
xform_stmt_list (code:$AM_STMT):$AM_STMT


Private

attr after_yield:$AM_STMT;
attr calls:FLIST{$AM_EXPR};
**** Calls made out of the body.
attr enclosing_if:AM_IF_STMT;
attr enclosing_if:AM_IF_STMT;
attr if_encl_yield:AM_IF_STMT;
**** True if the yield is in the then branch.
attr loop_stmt:AM_LOOP_STMT;
**** The loop we stopped inside.
attr return_val:$AM_EXPR;
**** Value returned in the code.
attr subst:FMAP{AM_LOCAL_EXPR,AM_LOCAL_EXPR};
attr subst:FMAP{AM_LOCAL_EXPR,AM_LOCAL_EXPR};
attr true_br_yield:BOOL;
**** The statements following the yield.
attr true_branch:BOOL;
**** The if statement containing the yield, if any.
attr true_branch:BOOL;
**** The if statement containing the yield, if any.
attr yield_val:$AM_EXPR;
**** Ditto for iterators.