#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  %begin

int main(int argc, char **argv) { /*%begin*/
  _imp_initialise(argc, argv);

  //     2    %integer I

  int I;

  //     3    %integername N

  int *N;

  //     4    %integerfn F

  int F(void) {
    //     5      %result = I

    return I;

    //     6    %end

  } /* end of F */

  //     7    %routine R

  void R(void) {
    //     8    %end

    return;
  } /* end of R */

  //     9    %integermap M

  int *M(void) {
    //    10      %result == I

    return /*?*/ &I;

    //    11    %end

  } /* end of M */

  //    12    %predicate P

  int P(void) {
    //    13      %true

    return 1 /*TRUE*/;

    //    14    %end

  } /* end of P */

  //    15    %if P %start

  if (!(P())) goto L_0001;

    //    16      R

  R();

  //    17      N == I

  N = (int *)/*?*/ &I;

  //    18      N = I

  *N = I;

  //    19      I = F

  I = F();

  //    20      I = M

  I = *M();

  //    21      I = N

  I = *N;

  //    22      M = I

  *M() = I;

  //    23    %finish

L_0001:;

//    24  %endofprogram

  _imp_stop(0);
  return 0;
end_0:;
}