#include <perms.h>

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

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

  //     2
  //     3  %ROUTINE SKIP SC(%INTEGER REVERSED)

  void SKIPSC(int REVERSED) {
    //     4  !***********************************************************************
    //     5  !*       REVERSED=1 FOR RECURSIVE CALL IN %NOT(SC)                     *
    //     6  !*       SKIPS OVER A SIMPLE CONDITION. P ON ALT OF<SC>                *
    //     7  !***********************************************************************
    //     8  %SWITCH SCALT(1:3)

    int SCALT_index;
    int SCALT_line;
    char *SCALT_file;
    static const void *SCALT[3] = {&&case_SCALT_missing, &&case_SCALT_missing, &&case_SCALT_missing};

    //     9  %INTEGER ALT

    int ALT;

    //    10  %END

    return;

  case_SCALT_dispatch:
    if (SCALT_index < 1 || SCALT_index > 3)
      _imp_signalf(6, 3, SCALT_index, "->SCALT(%d) out of bounds at %s line %d", SCALT_index, SCALT_file, SCALT_line);
    goto *SCALT[SCALT_index - 1];

  case_SCALT_missing:
    _imp_signalf(8, 2, SCALT_index, "switch jump to undefined label SCALT(%d): at %s line %d", SCALT_index, SCALT_file,
                 SCALT_line);
  } /* end of SKIPSC */

  // ?ALT unused
  // ?SCALT unused
  // ?REVERSED unused
  //    11
  //    12  %endofprogram

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