#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %BEGIN
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %RECORDFORMAT F(%INTEGER I,J,K,%INTEGERARRAY A,B,C(1:5))
struct F {
union {
struct {
int I;
int J;
int K;
int A[5];
int B[5];
int C[5];
};
};
};
// 3 %RECORD(F) R
struct F R;
// 4 %INTEGERARRAYNAME B
int *B;
// 5 %INTEGER I
int I;
// 6 R_I='I'
R.I = 73;
// 7 R_J='J'
R.J = 74;
// 8 %CYCLE I=1,1,5
// %for I = 1, 1, 5 %cycle
{
I = 0;
L_0001:
if (I == 5) goto L_0002;
I += 1;
// 9 R_A(I)=I
R.A[I - 1] = I;
// 10 %REPEAT
goto L_0001;
}
L_0002:;
// 11 R_K=255
R.K = 255;
// 12 B==R_A
B = (int *)R.A;
// 13 %CYCLE I=1,1,5
// %for I = 1, 1, 5 %cycle
{
I = 0;
L_0004:
if (I == 5) goto L_0005;
I += 1;
// 14 WRITE(B(I),5)
_imp_WRITE([/*BUG*/ 0], 5);
// 15 %REPEAT
goto L_0004;
}
L_0005:;
// 16 %ENDOFPROGRAM
_imp_stop(0);
return 0;
end_0:;
}