#include #include #include #include #include #include "AssignExpand.h" #include "SynTree/Type.h" #include "SynTree/Statement.h" #include "SynTree/Expression.h" #include "SynTree/Declaration.h" namespace Tuples { AssignExpander::AssignExpander() : temporaryNamer("__tpl") {} Statement *AssignExpander::mutate( ExprStmt *exprStmt ) { replace.clear(); extra.clear(); extra2.clear(); exprStmt->set_expr( maybeMutate( exprStmt->get_expr(), *this ) ); CompoundStmt *newSt = 0; if (! extra.empty() ) { if ( !newSt ) newSt= new CompoundStmt(std::list