#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %routine fifteen(%string(15) s)
void FIFTEEN(_imp_string15 S) {
// 3 printstring(s)
_imp_PRINTSTRING(
*({
__typeof__(_imp_string15) tmp = S /*q*/;
(_imp_string255 *)&tmp;
})
);
// 4 newline
_imp_NEWLINE();
// 5 %end
return;
} /* end of FIFTEEN */
// 6
// 7 %on %event 6 %start
if (!_imp_on_event(6)) goto L_0001;
// 8 print string("A string capacity exceeded fault was trapped."); new line
_imp_PRINTSTRING(_imp_str_literal("A string capacity exceeded fault was trapped."));
_imp_NEWLINE();
// 9 %stop
_imp_stop(0);
// 10 %finish
L_0001:;
// 11
// 12 %string(7) seven = "abcdefg"
_imp_string7 SEVEN;
_imp_strncpy(/*?*/ &SEVEN, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("abcdefg");
(void *)&tmp;
}),
/*max:*/ 7);
// 13 %string(31) thirty one = "0123456789012345678901234567890"
_imp_string31 THIRTYONE;
_imp_strncpy(/*?*/ &THIRTYONE, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("0123456789012345678901234567890");
(void *)&tmp;
}),
/*max:*/ 31);
// 14
// 15 fifteen(thirty one)
FIFTEEN(
*({
__typeof__(_imp_string31) tmp = THIRTYONE /*q*/;
(_imp_string15 *)&tmp;
})
);
// 16 fifteen(seven)
FIFTEEN(
*({
__typeof__(_imp_string7) tmp = SEVEN /*q*/;
(_imp_string15 *)&tmp;
})
);
// 17
// 18 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}