Ignore:
Timestamp:
Apr 19, 2022, 3:00:04 PM (3 years ago)
Author:
m3zulfiq <m3zulfiq@…>
Branches:
ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
Children:
5b84a321
Parents:
ba897d21 (diff), bb7c77d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

added benchmark and evaluations chapter to thesis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Declaration.h

    rba897d21 r2e9b59b  
    144144        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
    145145        virtual void printShort( std::ostream & os, Indenter indent = {} ) const override;
     146
     147        // TODO: Move to the right place
     148        void checkAssignedValue() const;
    146149};
    147150
     
    287290        AggregateDecl * set_body( bool body ) { AggregateDecl::body = body; return this; }
    288291
    289         virtual void print( std::ostream & os, Indenter indent = {} ) const override final;
     292        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
    290293        virtual void printShort( std::ostream & os, Indenter indent = {} ) const override;
    291294  protected:
     
    335338        typedef AggregateDecl Parent;
    336339  public:
    337         EnumDecl( const std::string & name, const std::list< Attribute * > & attributes = std::list< class Attribute * >(), LinkageSpec::Spec linkage = LinkageSpec::Cforall ) : Parent( name, attributes, linkage ) {}
    338         EnumDecl( const EnumDecl & other ) : Parent( other ) {}
     340        EnumDecl( const std::string & name,
     341         const std::list< Attribute * > & attributes = std::list< class Attribute * >(),
     342          LinkageSpec::Spec linkage = LinkageSpec::Cforall,
     343          Type * baseType = nullptr ) : Parent( name, attributes, linkage ) , base( baseType ){}
     344        EnumDecl( const EnumDecl & other ) : Parent( other ), base( other.base ) {}
    339345
    340346        bool valueOf( Declaration * enumerator, long long int & value );
     
    344350        virtual void accept( Visitor & v ) const override { v.visit( this ); }
    345351        virtual Declaration * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    346   private:
     352        Type * base;
    347353        std::unordered_map< std::string, long long int > enumValues;
     354        virtual void print( std::ostream & os, Indenter indent = {} ) const override final;
     355  private:
     356        // std::unordered_map< std::string, long long int > enumValues;
    348357        virtual const char * typeString() const override;
    349358};
Note: See TracChangeset for help on using the changeset viewer.