#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %string(2) %fn symbolprefix
_imp_string2 SYMBOLPREFIX(void) {
// 3 %result = "_"
return *(_imp_string2 *)/*?*/ _imp_str_literal_ptr("_");
// 4 %end
} /* end of SYMBOLPREFIX */
// 5
// 6 %routine r
void R(void) {
// 7 %string(255) name
_imp_string255 NAME;
// 8 name = symbolprefix."HELP"
_imp_strncpy(/*?*/ &NAME, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp = _imp_join(({
__typeof__(_imp_string2) tmp; /*D*/
tmp = SYMBOLPREFIX();
(void *)&tmp;
}),
(_imp_string *)/*?*/ _imp_str_literal_ptr("HELP"));
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 255);
// 9 %if name="_HELP" %then printstring("Test OK")
if (_imp_strcmp((_imp_string *)/*?*/ &NAME, (_imp_string *)/*?*/ _imp_str_literal_ptr("_HELP")) != 0) goto L_0001;
_imp_PRINTSTRING(_imp_str_literal("Test OK"));
L_0001:;
// 10 %end
return;
} /* end of R */
// 11 r
R();
// 12 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}