#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %BEGIN
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %STRING(40) S,T,U
_imp_string40 S;
_imp_string40 T;
_imp_string40 U;
// 3 S=""
_imp_strncpy(/*?*/ &S, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("");
(void *)&tmp;
}),
/*max:*/ 40);
// 4 S=S."CONCATENATION "
_imp_strncpy(/*?*/ &S, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &S, (_imp_string *)/*?*/ _imp_str_literal_ptr("CONCATENATION "));
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 40);
// 5 T="SEEMS TO "
_imp_strncpy(/*?*/ &T, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("SEEMS TO ");
(void *)&tmp;
}),
/*max:*/ 40);
// 6 S=S.T."WORK OK"
_imp_strncpy(/*?*/ &S, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp = _imp_join((_imp_string *)/*?*/ &*({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &S, (_imp_string *)/*?*/ &T);
(_imp_string255 *)&tmp;
}),
(_imp_string *)/*?*/ _imp_str_literal_ptr("WORK OK"));
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 40);
// 7 S=S."!"
_imp_strncpy(/*?*/ &S, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &S, (_imp_string *)/*?*/ _imp_str_literal_ptr("!"));
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 40);
// 8 PRINTSTRING(S)
_imp_PRINTSTRING(
*({
__typeof__(_imp_string40) tmp = S /*q*/;
(_imp_string255 *)&tmp;
})
);
// 9 %ENDOFPROGRAM
_imp_stop(0);
return 0;
end_0:;
}