Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Expression.h

    r630a82a rafc1045  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Apr  8 17:18:06 2016
    13 // Update Count     : 21
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Dec 09 14:10:21 2015
     13// Update Count     : 19
    1414//
    1515
     
    362362};
    363363
     364/// Expression representing a pack of field-offsets for a generic type
     365class OffsetPackExpr : public Expression {
     366public:
     367        OffsetPackExpr( StructInstType *type_, Expression *aname_ = 0 );
     368        OffsetPackExpr( const OffsetPackExpr &other );
     369        virtual ~OffsetPackExpr();
     370
     371        StructInstType *get_type() const { return type; }
     372        void set_type( StructInstType *newValue ) { type = newValue; }
     373
     374        virtual OffsetPackExpr *clone() const { return new OffsetPackExpr( *this ); }
     375        virtual void accept( Visitor &v ) { v.visit( this ); }
     376        virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
     377
     378        virtual void print( std::ostream &os, int indent = 0 ) const;
     379
     380private:
     381        StructInstType *type;
     382};
     383
    364384/// AttrExpr represents an @attribute expression (like sizeof, but user-defined)
    365385class AttrExpr : public Expression {
     
    557577};
    558578
    559 /// CompoundLiteralExpr represents a C99 'compound literal'
    560 class CompoundLiteralExpr : public Expression {
    561   public:
    562         CompoundLiteralExpr( Type * type, Initializer * initializer );
    563         CompoundLiteralExpr( const CompoundLiteralExpr &other );
    564         ~CompoundLiteralExpr();
    565 
    566         Type * get_type() const { return type; }
    567         void set_type( Type * t ) { type = t; }
    568 
    569         Initializer * get_initializer() const { return initializer; }
    570         void set_initializer( Initializer * i ) { initializer = i; }
    571 
    572         virtual CompoundLiteralExpr *clone() const { return new CompoundLiteralExpr( *this ); }
    573         virtual void accept( Visitor &v ) { v.visit( this ); }
    574         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    575         virtual void print( std::ostream &os, int indent = 0 ) const;
    576   private:
    577         Type * type;
    578         Initializer * initializer;
    579 };
    580 
    581579std::ostream & operator<<( std::ostream & out, Expression * expr );
    582580
Note: See TracChangeset for help on using the changeset viewer.