#include <perms.h>

                                                                //      1  %CONTROL X'10000000' ; ! Decode
                                                                //      2  %BEGIN
#line 2 "regression-run-tmp/ack.imp"
int main(int argc, char **argv) {
  _imp_initialise(argc, argv);
                                                                //      3    %INTEGERFN ACKERMANN(%INTEGER M, N)
#line 3 "regression-run-tmp/ack.imp"
int ACKERMANN( int M, int N )
#line 3 "regression-run-tmp/ack.imp"
{
                                                                //      4  
                                                                //      5     %RESULT = N+1 %IF M = 0
#line 5 "regression-run-tmp/ack.imp"
if (((M) != (0))) goto L_0002;
#line 5 "regression-run-tmp/ack.imp"
/* Remove %on %event handler here if present for this block */
return (((int)(N)) + (1));
#line 5 "regression-run-tmp/ack.imp"
L_0002:;
                                                                //      6  
                                                                //      7     %RESULT = ACKERMANN(M-1, 1) %IF N = 0
#line 7 "regression-run-tmp/ack.imp"
if (((N) != (0))) goto L_0003;
#line 7 "regression-run-tmp/ack.imp"
/* Remove %on %event handler here if present for this block */
return ACKERMANN((((int)(M)) - (1)), 1);
#line 7 "regression-run-tmp/ack.imp"
L_0003:;
                                                                //      8  
                                                                //      9     %RESULT = ACKERMANN(M-1, ACKERMANN(M, N-1))
#line 9 "regression-run-tmp/ack.imp"
/* Remove %on %event handler here if present for this block */
return ACKERMANN((((int)(M)) - (1)), ACKERMANN(M, (((int)(N)) - (1))));
                                                                //     10  
                                                                //     11    %END
#line 11 "regression-run-tmp/ack.imp"
} // End of block ACKERMANN at level 2
                                                                //     12  
                                                                //     13    %INTEGER I
#line 13 "regression-run-tmp/ack.imp"
int I;
                                                                //     14  
                                                                //     15    I = ACKERMANN(3,4)
#line 15 "regression-run-tmp/ack.imp"
I = ACKERMANN(3, 4);
                                                                //     16    PRINT STRING("ACKERMANN(3,4) = ")
#line 16 "regression-run-tmp/ack.imp"
_imp_PRINTSTRING(_imp_str_literal("ACKERMANN(3,4) = "));
                                                                //     17    WRITE(I, -1)
#line 17 "regression-run-tmp/ack.imp"
_imp_WRITE(I, (-1));
                                                                //     18    NEWLINE
#line 18 "regression-run-tmp/ack.imp"
_imp_NEWLINE();
                                                                //     19    
                                                                //     20  %ENDOFPROGRAM
#line 20 "regression-run-tmp/ack.imp"
/* Remove %on %event handler here if present for this block */
return 0;
} // End of block _imp_main at level 1
#line 20 "regression-run-tmp/ack.imp"
// End of file
