Changes in src/Parser/StatementNode.cc [2065609:6d49ea3]
- File:
-
- 1 edited
-
src/Parser/StatementNode.cc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/StatementNode.cc
r2065609 r6d49ea3 93 93 elseb = branches.front(); 94 94 } // if 95 95 96 96 std::list< Statement * > init; 97 97 if ( ctl->init != 0 ) { … … 207 207 } 208 208 209 WaitForStmt * build_waitfor( ExpressionNode * targetExpr, StatementNode * stmt, ExpressionNode * when ) {210 auto node = new WaitForStmt();211 212 WaitForStmt::Target target;213 target.function = maybeBuild<Expression>( targetExpr );214 215 ExpressionNode * next = dynamic_cast<ExpressionNode *>( targetExpr->get_next() );216 targetExpr->set_next( nullptr );217 buildMoveList< Expression >( next, target.arguments );218 219 delete targetExpr;220 221 node->clauses.push_back( WaitForStmt::Clause{222 target,223 maybeMoveBuild<Statement >( stmt ),224 maybeMoveBuild<Expression>( when )225 });226 227 return node;228 }229 230 WaitForStmt * build_waitfor( ExpressionNode * targetExpr, StatementNode * stmt, ExpressionNode * when, WaitForStmt * node ) {231 WaitForStmt::Target target;232 target.function = maybeBuild<Expression>( targetExpr );233 234 ExpressionNode * next = dynamic_cast<ExpressionNode *>( targetExpr->get_next() );235 targetExpr->set_next( nullptr );236 buildMoveList< Expression >( next, target.arguments );237 238 delete targetExpr;239 240 node->clauses.push_back( WaitForStmt::Clause{241 std::move( target ),242 maybeMoveBuild<Statement >( stmt ),243 maybeMoveBuild<Expression>( when )244 });245 246 return node;247 }248 249 WaitForStmt * build_waitfor_timeout( ExpressionNode * timeout, StatementNode * stmt, ExpressionNode * when ) {250 auto node = new WaitForStmt();251 252 if( timeout ) {253 node->timeout.time = maybeMoveBuild<Expression>( timeout );254 node->timeout.statement = maybeMoveBuild<Statement >( stmt );255 node->timeout.condition = maybeMoveBuild<Expression>( when );256 }257 else {258 node->orelse.statement = maybeMoveBuild<Statement >( stmt );259 node->orelse.condition = maybeMoveBuild<Expression>( when );260 }261 262 return node;263 }264 265 WaitForStmt * build_waitfor_timeout( ExpressionNode * timeout, StatementNode * stmt, ExpressionNode * when, StatementNode * else_stmt, ExpressionNode * else_when ) {266 auto node = new WaitForStmt();267 268 node->timeout.time = maybeMoveBuild<Expression>( timeout );269 node->timeout.statement = maybeMoveBuild<Statement >( stmt );270 node->timeout.condition = maybeMoveBuild<Expression>( when );271 272 node->orelse.statement = maybeMoveBuild<Statement >( else_stmt );273 node->orelse.condition = maybeMoveBuild<Expression>( else_when );274 275 return node;276 }277 278 // WaitForStmt::Target build_waitfor( const std::string * name, ExpressionNode * arguments ) {279 // return WaitForStmt::Clause{280 281 // };282 // }283 284 209 Statement *build_compound( StatementNode *first ) { 285 210 CompoundStmt *cs = new CompoundStmt( noLabels );
Note:
See TracChangeset
for help on using the changeset viewer.