#include <perms.h>

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

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

  //     2    %switch test ( -1 : 1 )

  int TEST_index;
  int TEST_line;
  char *TEST_file;
  static const void *TEST[3] = {&&case_TEST_M1, &&case_TEST_default, &&case_TEST_1};

  //     3    %integer i = 0

  int I;
  I = 0;

  //     4    ->test(i)

  TEST_line = __LINE__;
  TEST_file = __FILE__;
  TEST_index = I;
  goto case_TEST_dispatch;

  //     5    test(*):

case_TEST_default:;

//     6    test(1):

case_TEST_1:;

//     7    test(-1):

case_TEST_M1:;

//     8  %endofprogram

  _imp_stop(0);
  return 0;

case_TEST_dispatch:
  if (TEST_index < -1 || TEST_index > 1)
    _imp_signalf(6, 3, TEST_index, "->TEST(%d) out of bounds at %s line %d", TEST_index, TEST_file, TEST_line);
  goto *TEST[TEST_index - -1];
end_0:;
}