#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];
struct _imp_dv FILE_dv = {FILE, sizeof(struct FILEFM) /*, dims, <bounds> */};
// 6 mainfile = "fred.txt"
/* clang-format off */
_imp_strncpy(/*?*/&MAINFILE, ({__typeof__(_imp_string255) tmp;/*B*/ tmp = _imp_str_literal("fred.txt"); (void *)&tmp;}), /*max:*/255);
/* clang-format on */
// 7 main = 1
MAIN = 1;
// 8 file(main)_name = mainfile
/* clang-format off */
_imp_strncpy(/*?*/&FILE[MAIN].NAME, ({__typeof__(_imp_string255) tmp;/*B*/ tmp = MAINFILE; (void *)&tmp;}), /*max:*/255);
/* clang-format on */
// 9 file(main)_flag = 32768
FILE[MAIN].FLAG = 32768;
// 10 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}