Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Statement.h

    re67991f r35a2d47  
    4545        virtual Statement * clone() const override = 0;
    4646        virtual void accept( Visitor & v ) override = 0;
    47         virtual void accept( Visitor & v ) const override = 0;
    4847        virtual Statement * acceptMutator( Mutator & m ) override = 0;
    4948        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    6564        virtual CompoundStmt * clone() const override { return new CompoundStmt( *this ); }
    6665        virtual void accept( Visitor & v ) override { v.visit( this ); }
    67         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    6866        virtual CompoundStmt * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    6967        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    7674        virtual NullStmt * clone() const override { return new NullStmt( *this ); }
    7775        virtual void accept( Visitor & v ) override { v.visit( this ); }
    78         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    7976        virtual NullStmt * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    8077        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    9491        virtual ExprStmt * clone() const override { return new ExprStmt( *this ); }
    9592        virtual void accept( Visitor & v ) override { v.visit( this ); }
    96         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    9793        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    9894        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    124120        void set_gotolabels( const std::list<Label> & newValue ) { gotolabels = newValue; }
    125121
    126         virtual AsmStmt * clone() const override { return new AsmStmt( *this ); }
    127         virtual void accept( Visitor & v ) override { v.visit( this ); }
    128         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    129         virtual Statement * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    130         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     122        virtual AsmStmt * clone() const { return new AsmStmt( *this ); }
     123        virtual void accept( Visitor & v ) { v.visit( this ); }
     124        virtual Statement * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     125        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    131126};
    132127
     
    138133        virtual ~DirectiveStmt(){}
    139134
    140         virtual DirectiveStmt * clone() const override { return new DirectiveStmt( *this ); }
    141         virtual void accept( Visitor & v ) override { v.visit( this ); }
    142         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    143         virtual Statement * acceptMutator( Mutator & m ) override { return m.mutate( this ); }
    144         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     135        virtual DirectiveStmt * clone() const { return new DirectiveStmt( *this ); }
     136        virtual void accept( Visitor & v ) { v.visit( this ); }
     137        virtual Statement * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     138        virtual void print( std::ostream & os, Indenter indent = {} ) const;
    145139};
    146140
     
    167161        virtual IfStmt * clone() const override { return new IfStmt( *this ); }
    168162        virtual void accept( Visitor & v ) override { v.visit( this ); }
    169         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    170163        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    171164        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    187180
    188181        virtual void accept( Visitor & v ) override { v.visit( this ); }
    189         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    190182        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    191183
     
    216208
    217209        virtual void accept( Visitor & v ) override { v.visit( this ); }
    218         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    219210        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    220211
     
    245236        virtual WhileStmt * clone() const override { return new WhileStmt( *this ); }
    246237        virtual void accept( Visitor & v ) override { v.visit( this ); }
    247         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    248238        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    249239        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    271261        virtual ForStmt * clone() const override { return new ForStmt( *this ); }
    272262        virtual void accept( Visitor & v ) override { v.visit( this ); }
    273         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    274263        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    275264        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    301290        virtual BranchStmt * clone() const override { return new BranchStmt( *this ); }
    302291        virtual void accept( Visitor & v ) override { v.visit( this ); }
    303         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    304292        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    305293        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    321309        virtual ReturnStmt * clone() const override { return new ReturnStmt( *this ); }
    322310        virtual void accept( Visitor & v ) override { v.visit( this ); }
    323         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    324311        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    325312        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    346333        virtual ThrowStmt * clone() const override { return new ThrowStmt( *this ); }
    347334        virtual void accept( Visitor & v ) override { v.visit( this ); }
    348         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    349335        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    350336        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    370356        virtual TryStmt * clone() const override { return new TryStmt( *this ); }
    371357        virtual void accept( Visitor & v ) override { v.visit( this ); }
    372         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    373358        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    374359        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    399384        virtual CatchStmt * clone() const override { return new CatchStmt( *this ); }
    400385        virtual void accept( Visitor & v ) override { v.visit( this ); }
    401         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    402386        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    403387        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    417401        virtual FinallyStmt * clone() const override { return new FinallyStmt( *this ); }
    418402        virtual void accept( Visitor & v ) override { v.visit( this ); }
    419         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    420403        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    421404        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    455438        virtual WaitForStmt * clone() const override { return new WaitForStmt( *this ); }
    456439        virtual void accept( Visitor & v ) override { v.visit( this ); }
    457         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    458         virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    459         virtual void print( std::ostream & os, Indenter indent = {} ) const override;
    460 
    461 };
    462 
    463 // class WithStmt : public Statement {
    464 // public:
    465 //      std::list< Expression * > exprs;
    466 //      Statement * stmt;
    467 
    468 //      WithStmt( const std::list< Expression * > & exprs, Statement * stmt );
    469 //      WithStmt( const WithStmt & other );
    470 //      virtual ~WithStmt();
    471 
    472 //      virtual WithStmt * clone() const override { return new WithStmt( *this ); }
    473 //      virtual void accept( Visitor & v ) override { v.visit( this ); }
    474 //      virtual void accept( Visitor & v ) const override { v.visit( this ); }
    475 //      virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    476 //      virtual void print( std::ostream & os, Indenter indent = {} ) const override;
    477 // };
     440        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
     441        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     442
     443};
     444
     445class WithStmt : public Statement {
     446public:
     447        std::list< Expression * > exprs;
     448        Statement * stmt;
     449
     450        WithStmt( const std::list< Expression * > & exprs, Statement * stmt );
     451        WithStmt( const WithStmt & other );
     452        virtual ~WithStmt();
     453
     454        virtual WithStmt * clone() const override { return new WithStmt( *this ); }
     455        virtual void accept( Visitor & v ) override { v.visit( this ); }
     456        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
     457        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     458};
    478459
    479460
     
    492473        virtual DeclStmt * clone() const override { return new DeclStmt( *this ); }
    493474        virtual void accept( Visitor & v ) override { v.visit( this ); }
    494         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    495475        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    496476        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
     
    514494        virtual ImplicitCtorDtorStmt * clone() const override { return new ImplicitCtorDtorStmt( *this ); }
    515495        virtual void accept( Visitor & v ) override { v.visit( this ); }
    516         virtual void accept( Visitor & v ) const override { v.visit( this ); }
    517496        virtual Statement * acceptMutator( Mutator & m )  override { return m.mutate( this ); }
    518497        virtual void print( std::ostream & os, Indenter indent = {} ) const override;
Note: See TracChangeset for help on using the changeset viewer.