#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:;
}