#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %constinteger THREE = 3, FOUR = 4
// 2 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 3 %switch there(-20:FOUR*FOUR-1)
int THERE_index;
int THERE_line;
char *THERE_file;
static const void *THERE[36] = {
&&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing,
&&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_M12, &&case_THERE_missing,
&&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing,
&&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing,
&&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_3, &&case_THERE_4,
&&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing, &&case_THERE_missing,
&&case_THERE_missing, &&case_THERE_missing, &&case_THERE_12, &&case_THERE_missing, &&case_THERE_missing,
&&case_THERE_missing};
// 4 %integer i
int I;
// 5 i = three
I = 3;
// 6 i = four
I = 4;
// 7 i = three*four
I = 3 * 4;
// 8 ->there(three*four)
THERE_line = __LINE__;
THERE_file = __FILE__;
THERE_index = 3 * 4;
goto case_THERE_dispatch;
// 9
// 10 there(three):
case_THERE_3:;
// 11 there(four):
case_THERE_4:;
// 12 there(three*four):
case_THERE_12:;
// 13 there(-three*four):
case_THERE_M12:;
// 14 newline
_imp_NEWLINE();
// 15 %endofprogram
_imp_stop(0);
return 0;
case_THERE_dispatch:
if (THERE_index < -20 || THERE_index > 15)
_imp_signalf(6, 3, THERE_index, "->THERE(%d) out of bounds at %s line %d", THERE_index, THERE_file, THERE_line);
goto *THERE[THERE_index - -20];
case_THERE_missing:
_imp_signalf(8, 2, THERE_index, "switch jump to undefined label THERE(%d): at %s line %d", THERE_index, THERE_file,
THERE_line);
end_0:;
}