#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %recordformat arrfm(%integer %array test(0:9))
struct ARRFM {
union {
struct {
int TEST[10];
};
};
};
// 3
// 4 %routine handle array(%record (arrfm) rec)
void HANDLEARRAY(struct ARRFM REC) {
// 5 ! A %array is not allowed, only a %array %name ...
// 6 write(rec_test(5), 0)
_imp_WRITE(REC.TEST[5], 0);
// 7 %end
return;
} /* end of HANDLEARRAY */
// 8
// 9 %record (arrfm) small
struct ARRFM SMALL;
// 10
// 11 small_test(5) = 42
SMALL.TEST[5] = 42;
// 12 handle array(small)
HANDLEARRAY(SMALL);
// 13
// 14 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}