Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/StatementNode.cc

    r2065609 r6d49ea3  
    9393                elseb = branches.front();
    9494        } // if
    95 
     95       
    9696        std::list< Statement * > init;
    9797        if ( ctl->init != 0 ) {
     
    207207}
    208208
    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 
    284209Statement *build_compound( StatementNode *first ) {
    285210        CompoundStmt *cs = new CompoundStmt( noLabels );
Note: See TracChangeset for help on using the changeset viewer.