#ifndef _TUPLE_FUNCHK_H_ #define _TUPLE_FUNCHK_H_ #include #include #include #include "UniqueName.h" #include "SynTree/SynTree.h" #include "SynTree/Mutator.h" #include "SynTree/Type.h" #include "SynTree/Declaration.h" #include "SynTree/Expression.h" #include "SynTree/Statement.h" namespace Tuples { class FunctionChecker : public Mutator { typedef Mutator Parent; public: FunctionChecker( bool _topLevel = false, UniqueName *_nameGen = 0 ); ~FunctionChecker(); virtual Expression* mutate(ApplicationExpr *applicationExpr); virtual Statement* mutate(ExprStmt *exprStmt); private: bool topLevel; UniqueName *nameGen; std::list< ObjectDecl * > temporaries; std::list< Expression * > tempExpr; }; class TupleDistrib : public Mutator { public: virtual Expression* mutate(UntypedExpr *utExpr); private: }; void checkFunctions( std::list< Declaration * > translationUnit ); } // namespace Tuples #endif // #ifndef _TUPLE_FUNCHK_H_ /* Local Variables: mode: c++ End: */