Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Initializer.h

    rdb4ecc5 r05d47278  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // Initializer.h --
     7// Initializer.h -- 
    88//
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Tue Apr 12 13:49:13 2016
    13 // Update Count     : 19
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon May 18 09:03:48 2015
     13// Update Count     : 1
    1414//
    1515
     
    2727  public:
    2828        //      Initializer( std::string _name = std::string(""), int _pos = 0 );
    29         Initializer( bool maybeConstructed );
     29        Initializer( );
    3030        virtual ~Initializer();
    3131
     
    4343        }
    4444
    45         bool get_maybeConstructed() { return maybeConstructed; }
    46 
    4745        virtual Initializer *clone() const = 0;
    4846        virtual void accept( Visitor &v ) = 0;
     
    5250        //      std::string name;
    5351        //      int pos;
    54         bool maybeConstructed;
    5552};
    5653
     
    5855class SingleInit : public Initializer {
    5956  public:
    60         SingleInit( Expression *value, const std::list< Expression *> &designators = std::list< Expression * >(), bool maybeConstructed = false );
     57        SingleInit( Expression *value, std::list< Expression *> &designators = *(new std::list<Expression *>()) );
    6158        SingleInit( const SingleInit &other );
    6259        virtual ~SingleInit();
    63 
     60       
    6461        Expression *get_value() { return value; }
    6562        void set_value( Expression *newValue ) { value = newValue; }
     
    8279class ListInit : public Initializer {
    8380  public:
    84         ListInit( const std::list<Initializer*> &initializers,
    85                           const std::list<Expression *> &designators = std::list< Expression * >(), bool maybeConstructed = false );
     81        ListInit( std::list<Initializer*> &,
     82                          std::list<Expression *> &designators = *(new std::list<Expression *>()) );
    8683        virtual ~ListInit();
    8784
     
    103100};
    104101
    105 // ConstructorInit represents an initializer that is either a constructor expression or
    106 // a C-style initializer.
    107 class ConstructorInit : public Initializer {
    108   public:
    109         ConstructorInit( Statement * ctor, Statement * dtor, Initializer * init );
    110         virtual ~ConstructorInit();
    111 
    112         void set_ctor( Statement * newValue ) { ctor = newValue; }
    113         Statement * get_ctor() const { return ctor; }
    114         void set_dtor( Statement * newValue ) { dtor = newValue; }
    115         Statement * get_dtor() const { return dtor; }
    116         void set_init( Initializer * newValue ) { init = newValue; }
    117         Initializer * get_init() const { return init; }
    118 
    119         virtual ConstructorInit *clone() const;
    120         virtual void accept( Visitor &v ) { v.visit( this ); }
    121         virtual Initializer *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    122         virtual void print( std::ostream &os, int indent = 0 );
    123 
    124   private:
    125         Statement * ctor;
    126         Statement * dtor;
    127         // C-style initializer made up of SingleInit and ListInit nodes to use as a fallback
    128         // if an appropriate constructor definition is not found by the resolver
    129         Initializer * init;
    130 };
    131 
    132 std::ostream & operator<<( std::ostream & out, Initializer * init );
    133 
    134102#endif // INITIALIZER_H
    135103
Note: See TracChangeset for help on using the changeset viewer.