#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,J,K
int I;
int J;
int K;
// 3 I=3; J=4; K=5
I = 3;
J = 4;
K = 5;
// 4 %INTEGERARRAY A(0:3,2:4,1:5)
int A[4][3][5];
// 5 %INTEGERARRAY B(0:I,2:J,1:K)
int B[I + 1][J - 2 + 1][K - 1 + 1];
// 6 %FOR I=0,1,3 %CYCLE
// %for I = 0, 1, 3 %cycle
{
I = -1;
L_0001:
if (I == 3) goto L_0002;
I += 1;
// 7 %FOR J=2,1,4 %CYCLE
// %for J = 2, 1, 4 %cycle
{
J = 1;
L_0004:
if (J == 4) goto L_0005;
J += 1;
// 8 %FOR K=1,1,5 %CYCLE
// %for K = 1, 1, 5 %cycle
{
K = 0;
L_0007:
if (K == 5) goto L_0008;
K += 1;
// 9 A(I,J,K)=M'A'<<24!I<<16!J<<8!K
A[I][J - 2][K - 1] = 65 << 24 | I << 16 | J << 8 | K;
// 10 B(I,J,K)=M'B'<<24!I<<16!J<<8!K
B[I][J - 2][K - 1] = 66 << 24 | I << 16 | J << 8 | K;
// 11 %REPEAT
goto L_0007;
}
L_0008:;
// 12 %REPEAT
goto L_0004;
}
L_0005:;
// 13 %REPEAT
goto L_0001;
}
L_0002:;
// 14 %FOR I=0,1,3 %CYCLE
// %for I = 0, 1, 3 %cycle
{
I = -1;
L_000A:
if (I == 3) goto L_000B;
I += 1;
// 15 %FOR J=2,1,4 %CYCLE
// %for J = 2, 1, 4 %cycle
{
J = 1;
L_000C:
if (J == 4) goto L_000D;
J += 1;
// 16 %FOR K=1,1,5 %CYCLE
// %for K = 1, 1, 5 %cycle
{
K = 0;
L_000E:
if (K == 5) goto L_000F;
K += 1;
// 17 %IF A(I,J,K)&X'FFFFFF'#B(I,J,K)&X'FFFFFF' %START
if (A[I][J - 2][K - 1] & 16777215 == B[I][J - 2][K - 1] & 16777215) goto L_0010;
// 18 PRINTSTRING("ERROR")
_imp_PRINTSTRING(_imp_str_literal("ERROR"));
// 19 %MONITOR
/*_imp_monitor(__LINE__, __FILE__, PRETTY_FUNCTION);*/
// 20 %STOP
_imp_stop(0);
// 21 %FINISH
L_0010:;
// 22 %REPEAT
goto L_000E;
}
L_000F:;
// 23 %REPEAT
goto L_000C;
}
L_000D:;
// 24 %REPEAT
goto L_000A;
}
L_000B:;
// 25 PRINTSTRING("TEST OK")
_imp_PRINTSTRING(_imp_str_literal("TEST OK"));
// 26 %ENDOFPROGRAM
_imp_stop(0);
return 0;
end_0:;
}