#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  %begin

int main(int argc, char **argv) { /*%begin*/
  _imp_initialise(argc, argv);

  //     2     %constant %integer five = 2_101
  //     3     %routine nested

  void NESTED(void) {
    //     4        printstring("five = ".itos(five,0))

    _imp_PRINTSTRING(
        /* clang-format off */
*({  __typeof__(_imp_string255) tmp = *({_imp_string255 tmp = _imp_join((_imp_string *)/*?*/_imp_str_literal_ptr("five = "), ({__typeof__(_imp_string255) tmp; /*E*/ tmp = _imp_ITOS(5, 0); (void *)&tmp;})); (_imp_string255 *)&tmp;})/*q*/;  (_imp_string255 *)&tmp;  })
        /* clang-format on */
    );

    //     5     %end

    return;
  } /* end of NESTED */

  //     6
  //     7     nested

  NESTED();

  //     8
  //     9  %endofprogram

  _imp_stop(0);
  return 0;
end_0:;
}