#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %integer main
int MAIN;
// 3 %string(255) mainfile
_imp_string255 MAINFILE;
// 4 %recordformat file fm(%string(255) name, %integer flag)
struct FILEFM {
union {
struct {
_imp_string255 NAME;
int FLAG;
};
};
};
// 5 %record (file fm) %array file(0:1)
struct FILEFM FILE[2];
// 6 mainfile = "fred.txt"
_imp_strncpy(/*?*/ &MAINFILE, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("fred.txt");
(void *)&tmp;
}),
/*max:*/ 255);
// 7 main = 1
MAIN = 1;
// 8 file(main)_name = mainfile
_imp_strncpy(/*?*/ &FILE[MAIN].NAME, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = MAINFILE;
(void *)&tmp;
}),
/*max:*/ 255);
// 9 file(main)_flag = 32768
FILE[MAIN].FLAG = 32768;
// 10 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}