#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 %RECORD(F)%NAME B
struct F *B;
// 5 %INTEGER Q
int Q;
// 6
// 7 R_I='I'
R.I = 73;
// 8 R_A(3)='x'
R.A[2] = 120;
// 9
// 10 B==R
B = (struct F *)/*?*/ &R;
// 11 B_I='I'
B->I = 73;
// 12 B_A(3)='x'
B->A[2] = 120;
// 13
// 14 Q=R_I
Q = R.I;
// 15 Q=R_A(3)
Q = R.A[2];
// 16
// 17 Q=B_I
Q = B->I;
// 18 Q=B_A(3)
Q = B->A[2];
// 19
// 20 %ENDOFPROGRAM
_imp_stop(0);
return 0;
end_0:;
}