Changes in src/SynTree/Initializer.h [71f4e4f:05d47278]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Initializer.h
r71f4e4f r05d47278 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Initializer.h -- 7 // Initializer.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jan 13 15:29:53 201613 // Update Count : 1 711 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 09:03:48 2015 13 // Update Count : 1 14 14 // 15 15 … … 27 27 public: 28 28 // Initializer( std::string _name = std::string(""), int _pos = 0 ); 29 Initializer( bool maybeConstructed);29 Initializer( ); 30 30 virtual ~Initializer(); 31 31 … … 43 43 } 44 44 45 bool get_maybeConstructed() { return maybeConstructed; }46 47 45 virtual Initializer *clone() const = 0; 48 46 virtual void accept( Visitor &v ) = 0; … … 52 50 // std::string name; 53 51 // int pos; 54 bool maybeConstructed;55 52 }; 56 53 … … 58 55 class SingleInit : public Initializer { 59 56 public: 60 SingleInit( Expression *value, std::list< Expression *> &designators , bool maybeConstructed);57 SingleInit( Expression *value, std::list< Expression *> &designators = *(new std::list<Expression *>()) ); 61 58 SingleInit( const SingleInit &other ); 62 59 virtual ~SingleInit(); 63 60 64 61 Expression *get_value() { return value; } 65 62 void set_value( Expression *newValue ) { value = newValue; } … … 82 79 class ListInit : public Initializer { 83 80 public: 84 ListInit( std::list<Initializer*> &, 85 std::list<Expression *> &designators , bool maybeConstructed);81 ListInit( std::list<Initializer*> &, 82 std::list<Expression *> &designators = *(new std::list<Expression *>()) ); 86 83 virtual ~ListInit(); 87 84 … … 103 100 }; 104 101 105 // ConstructorInit represents an initializer that is either a constructor expression or106 // a C-style initializer.107 class ConstructorInit : public Initializer {108 public:109 ConstructorInit( Expression * ctor, Initializer * init );110 virtual ~ConstructorInit();111 112 void set_ctor( Expression * newValue ) { ctor = newValue; }113 Expression * get_ctor() const { return ctor; }114 void set_init( Initializer * newValue ) { init = newValue; }115 Initializer * get_init() const { return init; }116 117 virtual ConstructorInit *clone() const;118 virtual void accept( Visitor &v ) { v.visit( this ); }119 virtual Initializer *acceptMutator( Mutator &m ) { return m.mutate( this ); }120 virtual void print( std::ostream &os, int indent = 0 );121 122 private:123 Expression * ctor;124 // C-style initializer made up of SingleInit and ListInit nodes to use as a fallback125 // if an appropriate constructor definition is not found by the resolver126 Initializer * init;127 };128 129 102 #endif // INITIALIZER_H 130 103
Note:
See TracChangeset
for help on using the changeset viewer.