#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %integer I1
int I1;
// 3 %integername In
int *IN;
// 4 %real R1
float R1;
// 5 %recordformat rf(%integer i, %real r)
struct RF {
union {
struct {
int I;
float R;
};
};
};
// 6 %record (rf) rec
struct RF REC;
// 7 %record (rf) %name recn
struct RF *RECN;
// 8 recn == rec
RECN = (struct RF *)/*?*/ &REC;
// 9 I1 = rec_i
I1 = REC.I;
// 10 I1 = recn_i
I1 = RECN->I;
// 11 In == rec_i
IN = (int *)/*?*/ &REC.I;
// 12 In == recn_i
IN = (int *)/*?*/ &RECN->I;
// 13 In = I1
*IN = I1;
// 14 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}