#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %externalroutine nested for backtrace test
void NESTEDFORBACKTRACETEST(void) {
// 2 %owninteger anything = 1234
static int ANYTHING = 1234;
// 3
// 4 %routine fred(%integer n)
void FRED(int N) {
// 5 %integer x, y
int X;
int Y;
// 6 x = y + n
X = Y + N;
// 7 %end
return;
} /* end of FRED */
// 8
// 9 %integerfn jim
int JIM(void) {
// 10 fred(3)
FRED(3);
// 11 %result = 42
return 42;
// 12 %end
} /* end of JIM */
// 13
// 14 %integer q
int Q;
// 15
// 16 q = jim
Q = JIM();
// 17 %end
return;
} /* end of NESTEDFORBACKTRACETEST */
// ?ANYTHING unused
// 18
// 19 %externalroutine top level(%integer random number)
void TOPLEVEL(int RANDOMNUMBER) {
// 20 %integer blech
int BLECH;
// 21
// 22 blech = 42 + random number
BLECH = 42 + RANDOMNUMBER;
// 23
// 24 nested for backtrace test
NESTEDFORBACKTRACETEST();
// 25 %end
return;
} /* end of TOPLEVEL */
// 26
// 27 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 28
// 29 top level(17)
TOPLEVEL(17);
// 30
// 31 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}