Changes in src/SynTree/Statement.cc [b0dfbc4:135b431]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Statement.cc
rb0dfbc4 r135b431 89 89 90 90 BranchStmt::BranchStmt( std::list<Label> labels, Label target, Type type ) throw ( SemanticError ) : 91 Statement( labels ), originalTarget( target ), target( target ), computedTarget( nullptr), type( type ) {91 Statement( labels ), originalTarget( target ), target( target ), computedTarget( NULL ), type( type ) { 92 92 //actually this is a syntactic error signaled by the parser 93 if ( type == BranchStmt::Goto && target.empty() ) {93 if ( type == BranchStmt::Goto && target.empty() ) 94 94 throw SemanticError("goto without target"); 95 }96 95 } 97 96 98 97 BranchStmt::BranchStmt( std::list<Label> labels, Expression *computedTarget, Type type ) throw ( SemanticError ) : 99 98 Statement( labels ), computedTarget( computedTarget ), type( type ) { 100 if ( type != BranchStmt::Goto || computedTarget == nullptr ) {99 if ( type != BranchStmt::Goto || computedTarget == 0 ) 101 100 throw SemanticError("Computed target not valid in branch statement"); 102 }103 101 } 104 102 105 103 void BranchStmt::print( std::ostream &os, int indent ) const { 106 104 os << string( indent, ' ' ) << "Branch (" << brType[type] << ")" << endl ; 107 if ( target != "" ) os << string( indent+2, ' ' ) << "with target: " << target << endl;108 if ( originalTarget != "" ) os << string( indent+2, ' ' ) << "with original target: " << originalTarget << endl;109 if ( computedTarget != nullptr ) os << string( indent+2, ' ' ) << "with computed target: " << computedTarget << endl;110 105 } 111 106
Note: See TracChangeset
for help on using the changeset viewer.