Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/StatementNode.cc

    r135b431 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         buildMoveList< Expression >( targetExpr, target.arguments );
    215         delete targetExpr;
    216 
    217         node->clauses.push_back( WaitForStmt::Clause{
    218                 target,
    219                 maybeMoveBuild<Statement >( stmt ),
    220                 maybeMoveBuild<Expression>( when )
    221         });
    222 
    223         return node;
    224 }
    225 
    226 WaitForStmt * build_waitfor( ExpressionNode * targetExpr, StatementNode * stmt, ExpressionNode * when, WaitForStmt * node ) {
    227         WaitForStmt::Target target;
    228 
    229         target.function = maybeBuild<Expression>( targetExpr );
    230         buildMoveList< Expression >( targetExpr, target.arguments );
    231         delete targetExpr;
    232 
    233         node->clauses.push_back( WaitForStmt::Clause{
    234                 std::move( target ),
    235                 maybeMoveBuild<Statement >( stmt ),
    236                 maybeMoveBuild<Expression>( when )
    237         });
    238 
    239         return node;
    240 }
    241 
    242 WaitForStmt * build_waitfor_timeout( ExpressionNode * timeout, StatementNode * stmt, ExpressionNode * when ) {
    243         auto node = new WaitForStmt();
    244 
    245         if( timeout ) {
    246                 node->timeout.time      = maybeMoveBuild<Expression>( timeout );
    247                 node->timeout.statement = maybeMoveBuild<Statement >( stmt    );
    248                 node->timeout.condition = maybeMoveBuild<Expression>( when    );
    249         }
    250         else {
    251                 node->orelse.statement  = maybeMoveBuild<Statement >( stmt    );
    252                 node->orelse.condition  = maybeMoveBuild<Expression>( when    );
    253         }
    254 
    255         return node;
    256 }
    257 
    258 WaitForStmt * build_waitfor_timeout( ExpressionNode * timeout, StatementNode * stmt, ExpressionNode * when,  StatementNode * else_stmt, ExpressionNode * else_when ) {
    259         auto node = new WaitForStmt();
    260 
    261         node->timeout.time      = maybeMoveBuild<Expression>( timeout );
    262         node->timeout.statement = maybeMoveBuild<Statement >( stmt    );
    263         node->timeout.condition = maybeMoveBuild<Expression>( when    );
    264 
    265         node->orelse.statement = maybeMoveBuild<Statement >( else_stmt );
    266         node->orelse.condition = maybeMoveBuild<Expression>( else_when );
    267 
    268         return node;
    269 }
    270 
    271 // WaitForStmt::Target build_waitfor( const std::string * name, ExpressionNode * arguments ) {
    272 //       return WaitForStmt::Clause{
    273 
    274 //       };
    275 // }
    276 
    277209Statement *build_compound( StatementNode *first ) {
    278210        CompoundStmt *cs = new CompoundStmt( noLabels );
Note: See TracChangeset for help on using the changeset viewer.