Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Statement.h

    rde62360d r843054c2  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jun 23 11:44:27 2015
    13 // Update Count     : 20
     12// Last Modified On : Mon May 18 10:57:40 2015
     13// Update Count     : 2
    1414//
    1515
     
    2828
    2929        std::list<Label> & get_labels() { return labels; }
    30         const std::list<Label> & get_labels() const { return labels; }
    3130
    3231        virtual Statement *clone() const = 0;
    3332        virtual void accept( Visitor &v ) = 0;
    3433        virtual Statement *acceptMutator( Mutator &m ) = 0;
    35         virtual void print( std::ostream &os, int indent = 0 ) const;
     34        virtual void print( std::ostream &os, int indent = 0 );
    3635  protected:
    3736        std::list<Label> labels;
     
    4948        virtual void accept( Visitor &v ) { v.visit( this ); }
    5049        virtual CompoundStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    51         virtual void print( std::ostream &os, int indent = 0 ) const;
     50        virtual void print( std::ostream &os, int indent = 0 );
    5251  private:
    5352        std::list<Statement*> kids;
     
    6564        virtual void accept( Visitor &v ) { v.visit( this ); }
    6665        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    67         virtual void print( std::ostream &os, int indent = 0 ) const;
     66        virtual void print( std::ostream &os, int indent = 0 );
    6867  private:
    6968        Expression *expr;
     
    8584        virtual void accept( Visitor &v ) { v.visit( this ); }
    8685        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    87         virtual void print( std::ostream &os, int indent = 0 ) const;
     86        virtual void print( std::ostream &os, int indent = 0 );
    8887  private:
    8988        Expression *condition;
     
    107106
    108107        virtual SwitchStmt *clone() const { return new SwitchStmt( *this ); }
    109         virtual void print( std::ostream &os, int indent = 0 ) const;
     108        virtual void print( std::ostream &os, int indent = 0 );
    110109  private:
    111110        Expression * condition;
     
    128127
    129128        virtual ChooseStmt *clone() const { return new ChooseStmt( *this ); }
    130         virtual void print( std::ostream &os, int indent = 0 ) const;
     129        virtual void print( std::ostream &os, int indent = 0 );
    131130  private:
    132131        Expression *condition;
     
    142141
    143142        virtual FallthruStmt *clone() const { return new FallthruStmt( *this ); }
    144         virtual void print( std::ostream &os, int indent = 0 ) const;
     143        virtual void print( std::ostream &os, int indent = 0 );
    145144};
    146145
     
    151150        virtual ~CaseStmt();
    152151
    153         static CaseStmt * makeDefault( std::list<Label> labels = std::list<Label>(),
    154                 std::list<Statement *> stmts = std::list<Statement *>() );
    155 
    156         bool isDefault() const { return _isDefault; }
     152        bool isDefault() { return _isDefault; }
    157153        void set_default(bool b) { _isDefault = b; }
    158154
     
    167163
    168164        virtual CaseStmt *clone() const { return new CaseStmt( *this ); }
    169         virtual void print( std::ostream &os, int indent = 0 ) const;
     165        virtual void print( std::ostream &os, int indent = 0 );
    170166  private:
    171167        Expression * condition;
     
    190186        virtual void accept( Visitor &v ) { v.visit( this ); }
    191187        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    192         virtual void print( std::ostream &os, int indent = 0 ) const;
     188        virtual void print( std::ostream &os, int indent = 0 );
    193189  private:
    194190        Expression *condition;
     
    215211        virtual void accept( Visitor &v ) { v.visit( this ); }
    216212        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    217         virtual void print( std::ostream &os, int indent = 0 ) const;
     213        virtual void print( std::ostream &os, int indent = 0 );
    218214  private:
    219215        Statement *initialization;
     
    225221class BranchStmt : public Statement {
    226222  public:
    227         enum Type { Goto = 0, Break, Continue };
     223        enum Type { Goto = 0 , Break, Continue };
    228224
    229225        BranchStmt( std::list<Label> labels, Label target, Type ) throw (SemanticError);
     
    231227        virtual ~BranchStmt() {}
    232228
    233         Label get_originalTarget() { return originalTarget; }
    234229        Label get_target() { return target; }
    235230        void set_target( Label newValue ) { target = newValue; }
     
    244239        virtual void accept( Visitor &v ) { v.visit( this ); }
    245240        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    246         virtual void print( std::ostream &os, int indent = 0 ) const;
     241        virtual void print( std::ostream &os, int indent = 0 );
    247242  private:
    248243        static const char *brType[];
    249         Label originalTarget;  // can give better error messages if we remember the label name that the user entered
    250244        Label target;
    251245        Expression *computedTarget;
     
    264258        virtual void accept( Visitor &v ) { v.visit( this ); }
    265259        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    266         virtual void print( std::ostream &os, int indent = 0 ) const;
     260        virtual void print( std::ostream &os, int indent = 0 );
    267261  private:
    268262        Expression *expr;
     
    280274        virtual void accept( Visitor &v ) { v.visit( this ); }
    281275        virtual NullStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    282         virtual void print( std::ostream &os, int indent = 0 ) const;
     276        virtual void print( std::ostream &os, int indent = 0 );
    283277       
    284278  private:
     
    301295        virtual void accept( Visitor &v ) { v.visit( this ); }
    302296        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    303         virtual void print( std::ostream &os, int indent = 0 ) const;
     297        virtual void print( std::ostream &os, int indent = 0 );
    304298       
    305299  private:
     
    323317        virtual void accept( Visitor &v ) { v.visit( this ); }
    324318        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    325         virtual void print( std::ostream &os, int indent = 0 ) const;
     319        virtual void print( std::ostream &os, int indent = 0 );
    326320       
    327321  private:
     
    342336        virtual void accept( Visitor &v ) { v.visit( this ); }
    343337        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    344         virtual void print( std::ostream &os, int indent = 0 ) const;
     338        virtual void print( std::ostream &os, int indent = 0 );
    345339  private:
    346340        CompoundStmt *block;
     
    361355        virtual void accept( Visitor &v ) { v.visit( this ); }
    362356        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    363         virtual void print( std::ostream &os, int indent = 0 ) const;
     357        virtual void print( std::ostream &os, int indent = 0 );
    364358  private:
    365359        Declaration *decl;
Note: See TracChangeset for help on using the changeset viewer.