#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %diagnose 16_800F
// _imp_diagnose(0x800f); /* %diagnose is a compiler directive and does not generate code */
// 2
// 3 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 4 %integer g = 0
int G;
G = 0;
// 5
// 6 %routine p
void P(void) {
// 7 %integer a = 10
int A;
A = 10;
// 8
// 9 %routine q
void Q(void) {
// 10 %integer b = 20
int B;
B = 20;
// 11
// 12 %routine r
void R(void) {
// 13 g = 1
G = 1;
// 14 a = 11
A = 11;
// 15 b = 21
B = 21;
// 16 %end
return;
} /* end of R */
// 17
// 18 r
R();
// 19 write(b,0); newline
_imp_WRITE(B, 0);
_imp_NEWLINE();
// 20 %end
return;
} /* end of Q */
// 21
// 22 q
Q();
// 23 write(a,0); newline
_imp_WRITE(A, 0);
_imp_NEWLINE();
// 24 %end
return;
} /* end of P */
// 25
// 26 p
P();
// 27 write(g,0); newline
_imp_WRITE(G, 0);
_imp_NEWLINE();
// 28 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}