#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %integerfn fred(%integer i, j, k)
int FRED(int I, int J, int K) {
// 3 %result = i+j+k
return I + J + K;
// 4 %end
} /* end of FRED */
// 5 %integer q
int Q;
// 6 q = fred (1, 2, 3)
Q = FRED(1, 2, 3);
// 7 q = fred (fred(1, 2, 3), 4, 5)
Q = FRED(FRED(1, 2, 3), 4, 5);
// 8 q = fred (1, fred(2,3,4), 5)
Q = FRED(1, FRED(2, 3, 4), 5);
// 9 q = fred (1, 2, fred(3,4,5))
Q = FRED(1, 2, FRED(3, 4, 5));
// 10 q = fred (fred(1,2,3), fred(4,5,6), 7)
Q = FRED(FRED(1, 2, 3), FRED(4, 5, 6), 7);
// 11 q = fred (fred(1,2,3), 4, fred(5,6,7))
Q = FRED(FRED(1, 2, 3), 4, FRED(5, 6, 7));
// 12 q = fred (1, fred(2,3,4), fred(5,6,7))
Q = FRED(1, FRED(2, 3, 4), FRED(5, 6, 7));
// 13 q = fred (fred(1,2,3), fred(4,5,6), fred(7,8,9))
Q = FRED(FRED(1, 2, 3), FRED(4, 5, 6), FRED(7, 8, 9));
// 14 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}