Changes in src/SynTree/Statement.h [a61fea9a:de62360d]
- File:
-
- 1 edited
-
src/SynTree/Statement.h (modified) (20 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Statement.h
ra61fea9a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 3 11:55:15201513 // Update Count : 612 // Last Modified On : Tue Jun 23 11:44:27 2015 13 // Update Count : 20 14 14 // 15 15 … … 28 28 29 29 std::list<Label> & get_labels() { return labels; } 30 const std::list<Label> & get_labels() const { return labels; } 30 31 31 32 virtual Statement *clone() const = 0; 32 33 virtual void accept( Visitor &v ) = 0; 33 34 virtual Statement *acceptMutator( Mutator &m ) = 0; 34 virtual void print( std::ostream &os, int indent = 0 ) ;35 virtual void print( std::ostream &os, int indent = 0 ) const; 35 36 protected: 36 37 std::list<Label> labels; … … 48 49 virtual void accept( Visitor &v ) { v.visit( this ); } 49 50 virtual CompoundStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); } 50 virtual void print( std::ostream &os, int indent = 0 ) ;51 virtual void print( std::ostream &os, int indent = 0 ) const; 51 52 private: 52 53 std::list<Statement*> kids; … … 64 65 virtual void accept( Visitor &v ) { v.visit( this ); } 65 66 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 66 virtual void print( std::ostream &os, int indent = 0 ) ;67 virtual void print( std::ostream &os, int indent = 0 ) const; 67 68 private: 68 69 Expression *expr; … … 84 85 virtual void accept( Visitor &v ) { v.visit( this ); } 85 86 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 86 virtual void print( std::ostream &os, int indent = 0 ) ;87 virtual void print( std::ostream &os, int indent = 0 ) const; 87 88 private: 88 89 Expression *condition; … … 106 107 107 108 virtual SwitchStmt *clone() const { return new SwitchStmt( *this ); } 108 virtual void print( std::ostream &os, int indent = 0 ) ;109 virtual void print( std::ostream &os, int indent = 0 ) const; 109 110 private: 110 111 Expression * condition; … … 127 128 128 129 virtual ChooseStmt *clone() const { return new ChooseStmt( *this ); } 129 virtual void print( std::ostream &os, int indent = 0 ) ;130 virtual void print( std::ostream &os, int indent = 0 ) const; 130 131 private: 131 132 Expression *condition; … … 141 142 142 143 virtual FallthruStmt *clone() const { return new FallthruStmt( *this ); } 143 virtual void print( std::ostream &os, int indent = 0 ) ;144 virtual void print( std::ostream &os, int indent = 0 ) const; 144 145 }; 145 146 … … 150 151 virtual ~CaseStmt(); 151 152 152 bool isDefault() { return _isDefault; } 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; } 153 157 void set_default(bool b) { _isDefault = b; } 154 158 … … 163 167 164 168 virtual CaseStmt *clone() const { return new CaseStmt( *this ); } 165 virtual void print( std::ostream &os, int indent = 0 ) ;169 virtual void print( std::ostream &os, int indent = 0 ) const; 166 170 private: 167 171 Expression * condition; … … 186 190 virtual void accept( Visitor &v ) { v.visit( this ); } 187 191 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 188 virtual void print( std::ostream &os, int indent = 0 ) ;192 virtual void print( std::ostream &os, int indent = 0 ) const; 189 193 private: 190 194 Expression *condition; … … 211 215 virtual void accept( Visitor &v ) { v.visit( this ); } 212 216 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 213 virtual void print( std::ostream &os, int indent = 0 ) ;217 virtual void print( std::ostream &os, int indent = 0 ) const; 214 218 private: 215 219 Statement *initialization; … … 221 225 class BranchStmt : public Statement { 222 226 public: 223 enum Type { Goto = 0 , Break, Continue };227 enum Type { Goto = 0, Break, Continue }; 224 228 225 229 BranchStmt( std::list<Label> labels, Label target, Type ) throw (SemanticError); … … 240 244 virtual void accept( Visitor &v ) { v.visit( this ); } 241 245 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 242 virtual void print( std::ostream &os, int indent = 0 ) ;246 virtual void print( std::ostream &os, int indent = 0 ) const; 243 247 private: 244 248 static const char *brType[]; … … 260 264 virtual void accept( Visitor &v ) { v.visit( this ); } 261 265 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 262 virtual void print( std::ostream &os, int indent = 0 ) ;266 virtual void print( std::ostream &os, int indent = 0 ) const; 263 267 private: 264 268 Expression *expr; … … 276 280 virtual void accept( Visitor &v ) { v.visit( this ); } 277 281 virtual NullStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); } 278 virtual void print( std::ostream &os, int indent = 0 ) ;282 virtual void print( std::ostream &os, int indent = 0 ) const; 279 283 280 284 private: … … 297 301 virtual void accept( Visitor &v ) { v.visit( this ); } 298 302 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 299 virtual void print( std::ostream &os, int indent = 0 ) ;303 virtual void print( std::ostream &os, int indent = 0 ) const; 300 304 301 305 private: … … 319 323 virtual void accept( Visitor &v ) { v.visit( this ); } 320 324 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 321 virtual void print( std::ostream &os, int indent = 0 ) ;325 virtual void print( std::ostream &os, int indent = 0 ) const; 322 326 323 327 private: … … 338 342 virtual void accept( Visitor &v ) { v.visit( this ); } 339 343 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 340 virtual void print( std::ostream &os, int indent = 0 ) ;344 virtual void print( std::ostream &os, int indent = 0 ) const; 341 345 private: 342 346 CompoundStmt *block; … … 357 361 virtual void accept( Visitor &v ) { v.visit( this ); } 358 362 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 359 virtual void print( std::ostream &os, int indent = 0 ) ;363 virtual void print( std::ostream &os, int indent = 0 ) const; 360 364 private: 361 365 Declaration *decl;
Note:
See TracChangeset
for help on using the changeset viewer.