Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Expression.h

    rd7dc824 rfbcde64  
    690690};
    691691
     692/// MemberTupleExpr represents a tuple member selection operation on a struct type, e.g. s.[a, b, c] after processing by the expression analyzer
     693class MemberTupleExpr : public Expression {
     694  public:
     695        MemberTupleExpr( Expression * member, Expression * aggregate, Expression * _aname = nullptr );
     696        MemberTupleExpr( const MemberTupleExpr & other );
     697        virtual ~MemberTupleExpr();
     698
     699        Expression * get_member() const { return member; }
     700        Expression * get_aggregate() const { return aggregate; }
     701        MemberTupleExpr * set_member( Expression * newValue ) { member = newValue; return this; }
     702        MemberTupleExpr * set_aggregate( Expression * newValue ) { aggregate = newValue; return this; }
     703
     704        virtual MemberTupleExpr * clone() const { return new MemberTupleExpr( * this ); }
     705        virtual void accept( Visitor & v ) { v.visit( this ); }
     706        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     707        virtual void print( std::ostream & os, int indent = 0 ) const;
     708  private:
     709        Expression * member;
     710        Expression * aggregate;
     711};
     712
    692713/// TupleAssignExpr represents a multiple assignment operation, where both sides of the assignment have tuple type, e.g. [a, b, c] = [d, e, f];, a mass assignment operation, where the left hand side has tuple type and the right hand side does not, e.g. [a, b, c] = 5.0;, or a tuple ctor/dtor expression
    693714class TupleAssignExpr : public Expression {
Note: See TracChangeset for help on using the changeset viewer.