Changeset 51587aa for translator/Tuples/FlattenTuple.h
- Timestamp:
- May 18, 2015, 11:45:33 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
- Children:
- 01aeade
- Parents:
- 0dd3a2f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
translator/Tuples/FlattenTuple.h
r0dd3a2f r51587aa 1 // 2 // Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo 3 // 4 // The contents of this file are covered under the licence agreement in the 5 // file "LICENCE" distributed with Cforall. 6 // 7 // FlattenTuple.h -- 8 // 9 // Author : Richard C. Bilson 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 11:28:15 2015 13 // Update Count : 3 14 // 15 1 16 #ifndef _FLATTEN_TUPLE_H_ 2 17 #define _FLATTEN_TUPLE_H_ … … 8 23 9 24 namespace Tuples { 10 class FlattenTuple : public Mutator 11 { 12 typedef Mutator Parent; 25 class FlattenTuple : public Mutator { 26 typedef Mutator Parent; 27 public: 28 FlattenTuple(); 29 ~FlattenTuple(); 13 30 14 public: 15 FlattenTuple(); 16 ~FlattenTuple(); 31 virtual Expression *mutate( TupleExpr *tupleExpr ); 32 private: 33 class CollectArgs : public Visitor { 34 public: 35 virtual void visit( UntypedExpr * ); 36 virtual void visit( NameExpr * ); 37 virtual void visit( CastExpr *); 38 virtual void visit( AddressExpr * ); 39 virtual void visit( UntypedMemberExpr * ); 40 virtual void visit( MemberExpr * ); 41 virtual void visit( VariableExpr * ); 42 virtual void visit( ConstantExpr * ); 43 virtual void visit( SizeofExpr * ); 44 virtual void visit( AttrExpr * ); 45 virtual void visit( LogicalExpr * ); 46 virtual void visit( ConditionalExpr * ); 47 virtual void visit( CommaExpr * ); 48 virtual void visit( TypeExpr * ); 49 virtual void visit( UntypedValofExpr * ); 17 50 18 virtual Expression *mutate( TupleExpr *tupleExpr );51 virtual void visit( TupleExpr *tupleExpr ); 19 52 20 private: 21 class CollectArgs : public Visitor 22 { 23 public: 24 virtual void visit( UntypedExpr * ); 25 virtual void visit( NameExpr * ); 26 virtual void visit( CastExpr *); 27 virtual void visit( AddressExpr * ); 28 virtual void visit( UntypedMemberExpr * ); 29 virtual void visit( MemberExpr * ); 30 virtual void visit( VariableExpr * ); 31 virtual void visit( ConstantExpr * ); 32 virtual void visit( SizeofExpr * ); 33 virtual void visit( AttrExpr * ); 34 virtual void visit( LogicalExpr * ); 35 virtual void visit( ConditionalExpr * ); 36 virtual void visit( CommaExpr * ); 37 virtual void visit( TypeExpr * ); 38 virtual void visit( UntypedValofExpr * ); 53 std::list< Expression *> &get_args() { return currentArgs; } 54 private: 55 std::list< Expression * > currentArgs; 56 }; 39 57 40 virtual void visit( TupleExpr *tupleExpr ); 41 42 std::list< Expression *> &get_args() { return currentArgs; } 43 private: 44 std::list< Expression * > currentArgs; 45 }; 46 47 }; 48 58 }; 49 59 } // namespace Tuples 50 60 61 #endif // _FLATTEN_TUPLE_H_ 51 62 52 #endif // #ifndef _FLATTEN_TUPLE_H_ 53 54 /* 55 Local Variables: 56 mode: c++ 57 End: 58 */ 63 // Local Variables: // 64 // tab-width: 4 // 65 // mode: c++ // 66 // compile-command: "make install" // 67 // End: //
Note: See TracChangeset
for help on using the changeset viewer.