#include <perms.h>

                                                                //      1  %CONTROL X'10000000' ; ! Decode
                                                                //      2  %BEGIN
#line 2 "regression-bugs-tmp/ack.imp"
int main(int argc, char **argv) {
  __label__ _imp_endofblock;
  _imp_initialise(argc, argv);
                                                                //      3    %INTEGERFN ACKERMANN(%INTEGER M, N)
_imp_current_line = 3; _imp_current_file = "regression-bugs-tmp/ack.imp";
#line 3 "regression-bugs-tmp/ack.imp"
int ACKERMANN( int M, int N )
#line 3 "regression-bugs-tmp/ack.imp"
{
  __label__ _imp_endofblock;
                                                                //      4  
                                                                //      5     %RESULT = N+1 %IF M = 0
_imp_current_line = 5; _imp_current_file = "regression-bugs-tmp/ack.imp";
#line 5 "regression-bugs-tmp/ack.imp"
if (((M) != (0))) goto L_0002;
#line 5 "regression-bugs-tmp/ack.imp"
return (((int)(N)) + (1));
#line 5 "regression-bugs-tmp/ack.imp"
L_0002:;
                                                                //      6  
                                                                //      7     %RESULT = ACKERMANN(M-1, 1) %IF N = 0
_imp_current_line = 7; _imp_current_file = "regression-bugs-tmp/ack.imp";
#line 7 "regression-bugs-tmp/ack.imp"
if (((N) != (0))) goto L_0003;
#line 7 "regression-bugs-tmp/ack.imp"
return ACKERMANN((((int)(M)) - (1)), 1);
#line 7 "regression-bugs-tmp/ack.imp"
L_0003:;
                                                                //      8  
                                                                //      9     %RESULT = ACKERMANN(M-1, ACKERMANN(M, N-1))
_imp_current_line = 9; _imp_current_file = "regression-bugs-tmp/ack.imp";
#line 9 "regression-bugs-tmp/ack.imp"
return ACKERMANN((((int)(M)) - (1)), ACKERMANN(M, (((int)(N)) - (1))));
                                                                //     10  
                                                                //     11    %END
_imp_current_line = 11; _imp_current_file = "regression-bugs-tmp/ack.imp";
#line 11 "regression-bugs-tmp/ack.imp"
_imp_endofblock: ;
} // End of block ACKERMANN at level 2
                                                                //     12  
                                                                //     13    %INTEGER I
_imp_current_line = 13; _imp_current_file = "regression-bugs-tmp/ack.imp";
#line 13 "regression-bugs-tmp/ack.imp"
int I;
                                                                //     14  
                                                                //     15    I = ACKERMANN(3,4)
_imp_current_line = 15; _imp_current_file = "regression-bugs-tmp/ack.imp";
#line 15 "regression-bugs-tmp/ack.imp"
I = ACKERMANN(3, 4);
                                                                //     16  
                                                                //     17  %ENDOFPROGRAM
_imp_current_line = 17; _imp_current_file = "regression-bugs-tmp/ack.imp";
#line 17 "regression-bugs-tmp/ack.imp"
return 0;
_imp_endofblock: ;
} // End of block _imp_main at level 1
#line 17 "regression-bugs-tmp/ack.imp"
// End of file
