#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(
        *({
          __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;
        })
    );

    //     5     %end

    return;
  } /* end of NESTED */

  //     6
  //     7     nested

  NESTED();

  //     8
  //     9  %endofprogram

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