Changes in src/SynTree/Statement.cc [4e06c1e:74d1804]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Statement.cc
r4e06c1e r74d1804 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : T ue Jul 12 17:52:32201613 // Update Count : 5 511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu May 12 13:33:18 2016 13 // Update Count : 54 14 14 // 15 15 … … 87 87 Statement( labels ), originalTarget( _target ), target( _target ), computedTarget( NULL ), type( _type ) { 88 88 //actually this is a syntactic error signaled by the parser 89 if ( type == BranchStmt::Goto && target. empty())89 if ( type == BranchStmt::Goto && target.size() == 0 ) 90 90 throw SemanticError("goto without target"); 91 91 } … … 206 206 for ( i = stmts.begin(); i != stmts.end(); i++) 207 207 (*i )->print( os, indent + 4 ); 208 } 209 210 //ChooseStmt::ChooseStmt( std::list<Label> labels, Expression *condition, Statement *body ) {} 211 ChooseStmt::ChooseStmt( std::list<Label> _labels, Expression * _condition, std::list<Statement *> &_branches ): 212 Statement( _labels ), condition( _condition ), branches( _branches ) { 213 } 214 215 ChooseStmt::ChooseStmt( const ChooseStmt & other ): 216 Statement( other ), condition( maybeClone( other.condition ) ) { 217 cloneAll( other.branches, branches ); 218 } 219 220 ChooseStmt::~ChooseStmt() { 221 delete condition; 222 } 223 224 void ChooseStmt::add_case( CaseStmt *c ) {} 225 226 void ChooseStmt::print( std::ostream &os, int indent ) const { 227 os << "Choose on condition: "; 228 condition->print( os ); 229 os << endl; 230 231 // branches 232 std::list<Statement *>::const_iterator i; 233 for ( i = branches.begin(); i != branches.end(); i++) 234 (*i )->print( os, indent + 4 ); 235 236 //for_each( branches.begin(), branches.end(), mem_fun( bind1st(&Statement::print ), os )); 237 } 238 239 void FallthruStmt::print( std::ostream &os, int indent ) const { 240 os << string( indent, ' ' ) << "Fall-through statement" << endl; 208 241 } 209 242
Note:
See TracChangeset
for help on using the changeset viewer.