Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Initializer.h

    r71f4e4f 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 : Wed Jan 13 15:29:53 2016
    13 // Update Count     : 17
     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, std::list< Expression *> &designators, bool maybeConstructed );
     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( std::list<Initializer*> &,
    85                           std::list<Expression *> &designators, bool maybeConstructed );
     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( 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 fallback
    125         // if an appropriate constructor definition is not found by the resolver
    126         Initializer * init;
    127 };
    128 
    129102#endif // INITIALIZER_H
    130103
Note: See TracChangeset for help on using the changeset viewer.