Changes in src/SynTree/Expression.h [62423350:af5c204a]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.h
r62423350 raf5c204a 744 744 }; 745 745 746 struct InitAlternative {747 public:748 Type * type = nullptr;749 Designation * designation = nullptr;750 InitAlternative( Type * type, Designation * designation );751 InitAlternative( const InitAlternative & other );752 InitAlternative & operator=( const Initializer & other ) = delete; // at the moment this isn't used, and I don't want to implement it753 ~InitAlternative();754 };755 756 class UntypedInitExpr : public Expression {757 public:758 UntypedInitExpr( Expression * expr, const std::list<InitAlternative> & initAlts );759 UntypedInitExpr( const UntypedInitExpr & other );760 ~UntypedInitExpr();761 762 Expression * get_expr() const { return expr; }763 UntypedInitExpr * set_expr( Expression * newValue ) { expr = newValue; return this; }764 765 std::list<InitAlternative> & get_initAlts() { return initAlts; }766 767 virtual UntypedInitExpr * clone() const { return new UntypedInitExpr( * this ); }768 virtual void accept( Visitor & v ) { v.visit( this ); }769 virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }770 virtual void print( std::ostream & os, int indent = 0 ) const;771 private:772 Expression * expr;773 std::list<InitAlternative> initAlts;774 };775 776 class InitExpr : public Expression {777 public:778 InitExpr( Expression * expr, Designation * designation );779 InitExpr( const InitExpr & other );780 ~InitExpr();781 782 Expression * get_expr() const { return expr; }783 InitExpr * set_expr( Expression * newValue ) { expr = newValue; return this; }784 785 Designation * get_designation() const { return designation; }786 InitExpr * set_designation( Designation * newValue ) { designation = newValue; return this; }787 788 virtual InitExpr * clone() const { return new InitExpr( * this ); }789 virtual void accept( Visitor & v ) { v.visit( this ); }790 virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }791 virtual void print( std::ostream & os, int indent = 0 ) const;792 private:793 Expression * expr;794 Designation * designation;795 };796 797 798 746 std::ostream & operator<<( std::ostream & out, const Expression * expr ); 799 747
Note:
See TracChangeset
for help on using the changeset viewer.