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