Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Expression.h

    re67991f r462a7c7  
    8282        virtual Expression * clone() const override = 0;
    8383        virtual void accept( Visitor & v ) override = 0;
    84         virtual void accept( Visitor & v ) const override = 0;
    8584        virtual Expression * acceptMutator( Mutator & m ) override = 0;
    8685        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    102101        std::list<Expression *>& get_args() { return args; }
    103102
    104         virtual ApplicationExpr * clone() const override { return new ApplicationExpr( * this ); }
    105         virtual void accept( Visitor & v ) override { v.visit( this ); }
    106         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    107         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    108         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     103        virtual ApplicationExpr * clone() const { return new ApplicationExpr( * this ); }
     104        virtual void accept( Visitor & v ) { v.visit( this ); }
     105        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     106        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    109107};
    110108
     
    131129        static UntypedExpr * createAssign( Expression * arg1, Expression * arg2 );
    132130
    133         virtual UntypedExpr * clone() const override { return new UntypedExpr( * this ); }
    134         virtual void accept( Visitor & v ) override { v.visit( this ); }
    135         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    136         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    137         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     131        virtual UntypedExpr * clone() const { return new UntypedExpr( * this ); }
     132        virtual void accept( Visitor & v ) { v.visit( this ); }
     133        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     134        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    138135};
    139136
     
    150147        void set_name( std::string newValue ) { name = newValue; }
    151148
    152         virtual NameExpr * clone() const override { return new NameExpr( * this ); }
    153         virtual void accept( Visitor & v ) override { v.visit( this ); }
    154         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    155         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    156         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     149        virtual NameExpr * clone() const { return new NameExpr( * this ); }
     150        virtual void accept( Visitor & v ) { v.visit( this ); }
     151        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     152        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    157153};
    158154
     
    172168        void set_arg(Expression * newValue ) { arg = newValue; }
    173169
    174         virtual AddressExpr * clone() const override { return new AddressExpr( * this ); }
    175         virtual void accept( Visitor & v ) override { v.visit( this ); }
    176         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    177         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    178         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     170        virtual AddressExpr * clone() const { return new AddressExpr( * this ); }
     171        virtual void accept( Visitor & v ) { v.visit( this ); }
     172        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     173        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    179174};
    180175
     
    189184        virtual ~LabelAddressExpr();
    190185
    191         virtual LabelAddressExpr * clone() const override { return new LabelAddressExpr( * this ); }
    192         virtual void accept( Visitor & v ) override { v.visit( this ); }
    193         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    194         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    195         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     186        virtual LabelAddressExpr * clone() const { return new LabelAddressExpr( * this ); }
     187        virtual void accept( Visitor & v ) { v.visit( this ); }
     188        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     189        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    196190};
    197191
     
    211205        void set_arg( Expression * newValue ) { arg = newValue; }
    212206
    213         virtual CastExpr * clone() const override { return new CastExpr( * this ); }
    214         virtual void accept( Visitor & v ) override { v.visit( this ); }
    215         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    216         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    217         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     207        virtual CastExpr * clone() const { return new CastExpr( * this ); }
     208        virtual void accept( Visitor & v ) { v.visit( this ); }
     209        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     210        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    218211};
    219212
     
    232225        const std::string & targetString() const;
    233226
    234         virtual KeywordCastExpr * clone() const override { return new KeywordCastExpr( * this ); }
    235         virtual void accept( Visitor & v ) override { v.visit( this ); }
    236         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    237         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    238         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     227        virtual KeywordCastExpr * clone() const { return new KeywordCastExpr( * this ); }
     228        virtual void accept( Visitor & v ) { v.visit( this ); }
     229        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     230        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    239231};
    240232
     
    251243        void set_arg( Expression * newValue ) { arg = newValue; }
    252244
    253         virtual VirtualCastExpr * clone() const override { return new VirtualCastExpr( * this ); }
    254         virtual void accept( Visitor & v ) override { v.visit( this ); }
    255         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    256         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    257         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     245        virtual VirtualCastExpr * clone() const { return new VirtualCastExpr( * this ); }
     246        virtual void accept( Visitor & v ) { v.visit( this ); }
     247        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     248        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    258249};
    259250
     
    273264        void set_aggregate( Expression * newValue ) { aggregate = newValue; }
    274265
    275         virtual UntypedMemberExpr * clone() const override { return new UntypedMemberExpr( * this ); }
    276         virtual void accept( Visitor & v ) override { v.visit( this ); }
    277         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    278         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    279         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     266        virtual UntypedMemberExpr * clone() const { return new UntypedMemberExpr( * this ); }
     267        virtual void accept( Visitor & v ) { v.visit( this ); }
     268        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     269        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    280270};
    281271
     
    296286        void set_aggregate( Expression * newValue ) { aggregate = newValue; }
    297287
    298         virtual MemberExpr * clone() const override { return new MemberExpr( * this ); }
    299         virtual void accept( Visitor & v ) override { v.visit( this ); }
    300         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    301         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    302         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     288        virtual MemberExpr * clone() const { return new MemberExpr( * this ); }
     289        virtual void accept( Visitor & v ) { v.visit( this ); }
     290        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     291        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    303292};
    304293
     
    319308        static VariableExpr * functionPointer( FunctionDecl * decl );
    320309
    321         virtual VariableExpr * clone() const override { return new VariableExpr( * this ); }
    322         virtual void accept( Visitor & v ) override { v.visit( this ); }
    323         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    324         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    325         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     310        virtual VariableExpr * clone() const { return new VariableExpr( * this ); }
     311        virtual void accept( Visitor & v ) { v.visit( this ); }
     312        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     313        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    326314};
    327315
     
    341329        long long int intValue() const;
    342330
    343         virtual ConstantExpr * clone() const override { return new ConstantExpr( * this ); }
    344         virtual void accept( Visitor & v ) override { v.visit( this ); }
    345         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    346         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    347         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     331        virtual ConstantExpr * clone() const { return new ConstantExpr( * this ); }
     332        virtual void accept( Visitor & v ) { v.visit( this ); }
     333        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     334        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    348335};
    349336
     
    367354        void set_isType( bool newValue ) { isType = newValue; }
    368355
    369         virtual SizeofExpr * clone() const override { return new SizeofExpr( * this ); }
    370         virtual void accept( Visitor & v ) override { v.visit( this ); }
    371         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    372         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    373         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     356        virtual SizeofExpr * clone() const { return new SizeofExpr( * this ); }
     357        virtual void accept( Visitor & v ) { v.visit( this ); }
     358        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     359        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    374360};
    375361
     
    393379        void set_isType( bool newValue ) { isType = newValue; }
    394380
    395         virtual AlignofExpr * clone() const override { return new AlignofExpr( * this ); }
    396         virtual void accept( Visitor & v ) override { v.visit( this ); }
    397         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    398         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    399         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     381        virtual AlignofExpr * clone() const { return new AlignofExpr( * this ); }
     382        virtual void accept( Visitor & v ) { v.visit( this ); }
     383        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     384        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    400385};
    401386
     
    415400        void set_type( Type * newValue ) { type = newValue; }
    416401
    417         virtual UntypedOffsetofExpr * clone() const override { return new UntypedOffsetofExpr( * this ); }
    418         virtual void accept( Visitor & v ) override { v.visit( this ); }
    419         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    420         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    421         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     402        virtual UntypedOffsetofExpr * clone() const { return new UntypedOffsetofExpr( * this ); }
     403        virtual void accept( Visitor & v ) { v.visit( this ); }
     404        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     405        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    422406};
    423407
     
    437421        void set_member( DeclarationWithType * newValue ) { member = newValue; }
    438422
    439         virtual OffsetofExpr * clone() const override { return new OffsetofExpr( * this ); }
    440         virtual void accept( Visitor & v ) override { v.visit( this ); }
    441         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    442         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    443         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     423        virtual OffsetofExpr * clone() const { return new OffsetofExpr( * this ); }
     424        virtual void accept( Visitor & v ) { v.visit( this ); }
     425        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     426        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    444427};
    445428
     
    456439        void set_type( StructInstType * newValue ) { type = newValue; }
    457440
    458         virtual OffsetPackExpr * clone() const override { return new OffsetPackExpr( * this ); }
    459         virtual void accept( Visitor & v ) override { v.visit( this ); }
    460         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    461         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    462         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     441        virtual OffsetPackExpr * clone() const { return new OffsetPackExpr( * this ); }
     442        virtual void accept( Visitor & v ) { v.visit( this ); }
     443        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     444        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    463445};
    464446
     
    485467        void set_isType( bool newValue ) { isType = newValue; }
    486468
    487         virtual AttrExpr * clone() const override { return new AttrExpr( * this ); }
    488         virtual void accept( Visitor & v ) override { v.visit( this ); }
    489         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    490         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    491         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     469        virtual AttrExpr * clone() const { return new AttrExpr( * this ); }
     470        virtual void accept( Visitor & v ) { v.visit( this ); }
     471        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     472        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    492473};
    493474
     
    508489        void set_arg2( Expression * newValue ) { arg2 = newValue; }
    509490
    510         virtual LogicalExpr * clone() const override { return new LogicalExpr( * this ); }
    511         virtual void accept( Visitor & v ) override { v.visit( this ); }
    512         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    513         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    514         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     491        virtual LogicalExpr * clone() const { return new LogicalExpr( * this ); }
     492        virtual void accept( Visitor & v ) { v.visit( this ); }
     493        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     494        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    515495
    516496  private:
     
    536516        void set_arg3( Expression * newValue ) { arg3 = newValue; }
    537517
    538         virtual ConditionalExpr * clone() const override { return new ConditionalExpr( * this ); }
    539         virtual void accept( Visitor & v ) override { v.visit( this ); }
    540         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    541         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    542         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     518        virtual ConditionalExpr * clone() const { return new ConditionalExpr( * this ); }
     519        virtual void accept( Visitor & v ) { v.visit( this ); }
     520        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     521        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    543522};
    544523
     
    558537        void set_arg2( Expression * newValue ) { arg2 = newValue; }
    559538
    560         virtual CommaExpr * clone() const override { return new CommaExpr( * this ); }
    561         virtual void accept( Visitor & v ) override { v.visit( this ); }
    562         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    563         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    564         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     539        virtual CommaExpr * clone() const { return new CommaExpr( * this ); }
     540        virtual void accept( Visitor & v ) { v.visit( this ); }
     541        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     542        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    565543};
    566544
     
    577555        void set_type( Type * newValue ) { type = newValue; }
    578556
    579         virtual TypeExpr * clone() const override { return new TypeExpr( * this ); }
    580         virtual void accept( Visitor & v ) override { v.visit( this ); }
    581         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    582         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    583         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     557        virtual TypeExpr * clone() const { return new TypeExpr( * this ); }
     558        virtual void accept( Visitor & v ) { v.visit( this ); }
     559        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     560        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    584561};
    585562
     
    604581        void set_operand( Expression * newValue ) { operand = newValue; }
    605582
    606         virtual AsmExpr * clone() const override { return new AsmExpr( * this ); }
    607         virtual void accept( Visitor & v ) override { v.visit( this ); }
    608         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    609         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    610         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     583        virtual AsmExpr * clone() const { return new AsmExpr( * this ); }
     584        virtual void accept( Visitor & v ) { v.visit( this ); }
     585        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     586        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    611587
    612588        // https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Machine-Constraints.html#Machine-Constraints
     
    623599        virtual ~ImplicitCopyCtorExpr();
    624600
    625         virtual ImplicitCopyCtorExpr * clone() const override { return new ImplicitCopyCtorExpr( * this ); }
    626         virtual void accept( Visitor & v ) override { v.visit( this ); }
    627         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    628         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    629         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     601        virtual ImplicitCopyCtorExpr * clone() const { return new ImplicitCopyCtorExpr( * this ); }
     602        virtual void accept( Visitor & v ) { v.visit( this ); }
     603        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     604        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    630605};
    631606
     
    642617        void set_callExpr( Expression * newValue ) { callExpr = newValue; }
    643618
    644         virtual ConstructorExpr * clone() const override { return new ConstructorExpr( * this ); }
    645         virtual void accept( Visitor & v ) override { v.visit( this ); }
    646         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    647         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    648         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     619        virtual ConstructorExpr * clone() const { return new ConstructorExpr( * this ); }
     620        virtual void accept( Visitor & v ) { v.visit( this ); }
     621        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     622        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    649623};
    650624
     
    661635        void set_initializer( Initializer * i ) { initializer = i; }
    662636
    663         virtual CompoundLiteralExpr * clone() const override { return new CompoundLiteralExpr( * this ); }
    664         virtual void accept( Visitor & v ) override { v.visit( this ); }
    665         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    666         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    667         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     637        virtual CompoundLiteralExpr * clone() const { return new CompoundLiteralExpr( * this ); }
     638        virtual void accept( Visitor & v ) { v.visit( this ); }
     639        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     640        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    668641};
    669642
     
    681654        RangeExpr * set_high( Expression * high ) { RangeExpr::high = high; return this; }
    682655
    683         virtual RangeExpr * clone() const override { return new RangeExpr( * this ); }
    684         virtual void accept( Visitor & v ) override { v.visit( this ); }
    685         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    686         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    687         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     656        virtual RangeExpr * clone() const { return new RangeExpr( * this ); }
     657        virtual void accept( Visitor & v ) { v.visit( this ); }
     658        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     659        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    688660};
    689661
     
    699671        std::list<Expression*>& get_exprs() { return exprs; }
    700672
    701         virtual UntypedTupleExpr * clone() const override { return new UntypedTupleExpr( * this ); }
    702         virtual void accept( Visitor & v ) override { v.visit( this ); }
    703         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    704         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    705         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     673        virtual UntypedTupleExpr * clone() const { return new UntypedTupleExpr( * this ); }
     674        virtual void accept( Visitor & v ) { v.visit( this ); }
     675        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     676        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    706677};
    707678
     
    717688        std::list<Expression*>& get_exprs() { return exprs; }
    718689
    719         virtual TupleExpr * clone() const override { return new TupleExpr( * this ); }
    720         virtual void accept( Visitor & v ) override { v.visit( this ); }
    721         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    722         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    723         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     690        virtual TupleExpr * clone() const { return new TupleExpr( * this ); }
     691        virtual void accept( Visitor & v ) { v.visit( this ); }
     692        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     693        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    724694};
    725695
     
    739709        TupleIndexExpr * set_index( unsigned int newValue ) { index = newValue; return this; }
    740710
    741         virtual TupleIndexExpr * clone() const override { return new TupleIndexExpr( * this ); }
    742         virtual void accept( Visitor & v ) override { v.visit( this ); }
    743         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    744         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    745         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     711        virtual TupleIndexExpr * clone() const { return new TupleIndexExpr( * this ); }
     712        virtual void accept( Visitor & v ) { v.visit( this ); }
     713        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     714        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    746715};
    747716
     
    758727        StmtExpr * get_stmtExpr() const { return stmtExpr; }
    759728
    760         virtual TupleAssignExpr * clone() const override { return new TupleAssignExpr( * this ); }
    761         virtual void accept( Visitor & v ) override { v.visit( this ); }
    762         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    763         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    764         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     729        virtual TupleAssignExpr * clone() const { return new TupleAssignExpr( * this ); }
     730        virtual void accept( Visitor & v ) { v.visit( this ); }
     731        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     732        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    765733
    766734        friend class ConverterNewToOld;
     
    792760        std::list< Expression * > & get_dtors() { return dtors; }
    793761
    794         virtual StmtExpr * clone() const override { return new StmtExpr( * this ); }
    795         virtual void accept( Visitor & v ) override { v.visit( this ); }
    796         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    797         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    798         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     762        virtual StmtExpr * clone() const { return new StmtExpr( * this ); }
     763        virtual void accept( Visitor & v ) { v.visit( this ); }
     764        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     765        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    799766};
    800767
     
    820787        int get_id() const { return id; }
    821788
    822         virtual UniqueExpr * clone() const override { return new UniqueExpr( * this ); }
    823         virtual void accept( Visitor & v ) override { v.visit( this ); }
    824         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    825         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    826         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     789        virtual UniqueExpr * clone() const { return new UniqueExpr( * this ); }
     790        virtual void accept( Visitor & v ) { v.visit( this ); }
     791        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     792        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    827793
    828794private:
     
    855821        std::list<InitAlternative> & get_initAlts() { return initAlts; }
    856822
    857         virtual UntypedInitExpr * clone() const override { return new UntypedInitExpr( * this ); }
    858         virtual void accept( Visitor & v ) override { v.visit( this ); }
    859         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    860         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    861         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     823        virtual UntypedInitExpr * clone() const { return new UntypedInitExpr( * this ); }
     824        virtual void accept( Visitor & v ) { v.visit( this ); }
     825        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     826        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    862827};
    863828
     
    877842        InitExpr * set_designation( Designation * newValue ) { designation = newValue; return this; }
    878843
    879         virtual InitExpr * clone() const override { return new InitExpr( * this ); }
    880         virtual void accept( Visitor & v ) override { v.visit( this ); }
    881         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    882         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    883         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     844        virtual InitExpr * clone() const { return new InitExpr( * this ); }
     845        virtual void accept( Visitor & v ) { v.visit( this ); }
     846        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     847        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    884848};
    885849
     
    888852public:
    889853        Expression * expr;
    890         Declaration * deleteStmt;
    891 
    892         DeletedExpr( Expression * expr, Declaration * deleteStmt );
     854        BaseSyntaxNode * deleteStmt;
     855
     856        DeletedExpr( Expression * expr, BaseSyntaxNode * deleteStmt );
    893857        DeletedExpr( const DeletedExpr & other );
    894858        ~DeletedExpr();
    895859
    896         virtual DeletedExpr * clone() const override { return new DeletedExpr( * this ); }
    897         virtual void accept( Visitor & v ) override { v.visit( this ); }
    898         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    899         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    900         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     860        virtual DeletedExpr * clone() const { return new DeletedExpr( * this ); }
     861        virtual void accept( Visitor & v ) { v.visit( this ); }
     862        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     863        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    901864};
    902865
     
    910873        ~DefaultArgExpr();
    911874
    912         virtual DefaultArgExpr * clone() const override { return new DefaultArgExpr( * this ); }
    913         virtual void accept( Visitor & v ) override { v.visit( this ); }
    914         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    915         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    916         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     875        virtual DefaultArgExpr * clone() const { return new DefaultArgExpr( * this ); }
     876        virtual void accept( Visitor & v ) { v.visit( this ); }
     877        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     878        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    917879};
    918880
     
    939901        virtual ~GenericExpr();
    940902
    941         virtual GenericExpr * clone() const override { return new GenericExpr( * this ); }
    942         virtual void accept( Visitor & v ) override { v.visit( this ); }
    943         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    944         virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    945         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     903        virtual GenericExpr * clone() const { return new GenericExpr( * this ); }
     904        virtual void accept( Visitor & v ) { v.visit( this ); }
     905        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     906        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    946907};
    947908
Note: See TracChangeset for help on using the changeset viewer.