#include <perms.h>

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

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

  //     2    %predicate zero(%integer i)

  int ZERO(int I) {
    //     3      ! current bug: %true and %false are not implemented but don''t complain
    //     4      ! %end generates return(0) instead of an error.
    //     5      %true %if i=0

    if (I != 0) goto L_0001;
    return 1 /*TRUE*/;
  L_0001:;

  //     6      %false

    return 0 /*FALSE*/;

    //     7    %end

  } /* end of ZERO */

  //     8
  //     9    %if zero(1) %start

  if (!(ZERO(1))) goto L_0002;

    //    10      %signal 15,15

  _imp_signal(15, 15, 0, "");

  //    11    %finish

L_0002:;

//    12
//    13    %if zero(0) %start

  if (!(ZERO(0))) goto L_0003;

    //    14      %stop

  _imp_stop(0);

  //    15    %finish

L_0003:;

//    16
//    17  %endofprogram

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