@@ -2493,23 +2493,25 @@ iteration_statement:
2493
2493
if (!parser_stack ($7 ).operands ().empty ())
2494
2494
static_cast <exprt &>(parser_stack ($$).add (ID_C_spec_decreases)).operands ().swap (parser_stack ($7 ).operands ());
2495
2495
}
2496
- | TOK_DO statement TOK_WHILE ' ( ' comma_expression ' ) '
2496
+ | TOK_DO
2497
2497
cprover_contract_assigns_opt
2498
- cprover_contract_loop_invariant_list_opt
2499
- cprover_contract_decreases_opt ' ;'
2498
+ cprover_contract_loop_invariant_list_opt
2499
+ cprover_contract_decreases_opt
2500
+ statement
2501
+ TOK_WHILE ' (' comma_expression ' )' ' ;'
2500
2502
{
2501
2503
$$=$1 ;
2502
2504
statement ($$, ID_dowhile);
2503
- parser_stack ($$).add_to_operands (std::move (parser_stack ($5 )), std::move (parser_stack ($2 )));
2505
+ parser_stack ($$).add_to_operands (std::move (parser_stack ($8 )), std::move (parser_stack ($5 )));
2504
2506
2505
- if (!parser_stack ($7 ).operands ().empty ())
2506
- static_cast <exprt &>(parser_stack ($$).add (ID_C_spec_assigns)).operands ().swap (parser_stack ($7 ).operands ());
2507
+ if (!parser_stack ($2 ).operands ().empty ())
2508
+ static_cast <exprt &>(parser_stack ($$).add (ID_C_spec_assigns)).operands ().swap (parser_stack ($2 ).operands ());
2507
2509
2508
- if (!parser_stack ($8 ).operands ().empty ())
2509
- static_cast <exprt &>(parser_stack ($$).add (ID_C_spec_loop_invariant)).operands ().swap (parser_stack ($8 ).operands ());
2510
+ if (!parser_stack ($3 ).operands ().empty ())
2511
+ static_cast <exprt &>(parser_stack ($$).add (ID_C_spec_loop_invariant)).operands ().swap (parser_stack ($3 ).operands ());
2510
2512
2511
- if (!parser_stack ($9 ).operands ().empty ())
2512
- static_cast <exprt &>(parser_stack ($$).add (ID_C_spec_decreases)).operands ().swap (parser_stack ($9 ).operands ());
2513
+ if (!parser_stack ($4 ).operands ().empty ())
2514
+ static_cast <exprt &>(parser_stack ($$).add (ID_C_spec_decreases)).operands ().swap (parser_stack ($4 ).operands ());
2513
2515
}
2514
2516
| TOK_FOR
2515
2517
{
0 commit comments