#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2
// 3 %integer i, init=1, inc=2, final=3
int I;
int INIT;
INIT = 1;
int INC;
INC = 2;
int FINAL;
FINAL = 3;
// 4
// 5 %for i = init, inc, final %cycle
// %for I = INIT, INC, FINAL %cycle
{
int _initial = INIT, _increment = INC, _final = FINAL;
if (invalid_for_loop(_initial, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, FINAL");
I = _initial - _increment;
L_0001:
if (I == _final) goto L_0002;
I += _increment;
// 6 %repeat
goto L_0001;
}
L_0002:;
// 7 %for i = 1, inc, final %cycle
// %for I = 1, INC, FINAL %cycle
{
int _increment = INC, _final = FINAL;
if (invalid_for_loop(1, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, INC, FINAL");
I = 1 - _increment;
L_0004:
if (I == _final) goto L_0005;
I += _increment;
// 8 %repeat
goto L_0004;
}
L_0005:;
// 9 %for i = init, 2, final %cycle
// %for I = INIT, 2, FINAL %cycle
{
int _initial = INIT, _final = FINAL;
if (invalid_for_loop(_initial, 2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 2, FINAL");
I = _initial - (2);
L_0006:
if (I == _final) goto L_0007;
I += 2;
// 10 %repeat
goto L_0006;
}
L_0007:;
// 11 %for i = init, 1, final %cycle
// %for I = INIT, 1, FINAL %cycle
{
int _initial = INIT, _final = FINAL;
if (invalid_for_loop(_initial, 1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 1, FINAL");
I = _initial - (1);
L_0008:
if (I == _final) goto L_0009;
I += 1;
// 12 %repeat
goto L_0008;
}
L_0009:;
// 13 %for i = init, inc, 3 %cycle
// %for I = INIT, INC, 3 %cycle
{
int _initial = INIT, _increment = INC;
if (invalid_for_loop(_initial, _increment, 3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, 3");
I = _initial - _increment;
L_000A:
if (I == 3) goto L_000B;
I += _increment;
// 14 %repeat
goto L_000A;
}
L_000B:;
// 15 %for i = 1, 2, final %cycle
// %for I = 1, 2, FINAL %cycle
{
int _final = FINAL;
if (invalid_for_loop(1, 2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2, FINAL");
I = -1;
L_000C:
if (I == _final) goto L_000D;
I += 2;
// 16 %repeat
goto L_000C;
}
L_000D:;
// 17 %for i = 1, 1, final %cycle
// %for I = 1, 1, FINAL %cycle
{
int _final = FINAL;
if (invalid_for_loop(1, 1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 1, FINAL");
I = 0;
L_000E:
if (I == _final) goto L_000F;
I += 1;
// 18 %repeat
goto L_000E;
}
L_000F:;
// 19 %for i = init, 2, 3 %cycle
// %for I = INIT, 2, 3 %cycle
{
int _initial = INIT;
if (invalid_for_loop(_initial, 2, 3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 2, 3");
I = _initial - (2);
L_0010:
if (I == 3) goto L_0011;
I += 2;
// 20 %repeat
goto L_0010;
}
L_0011:;
// 21 %for i = 1, inc, 3 %cycle
// %for I = 1, INC, 3 %cycle
{
int _increment = INC;
if (invalid_for_loop(1, _increment, 3)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, INC, 3");
I = 1 - _increment;
L_0012:
if (I == 3) goto L_0013;
I += _increment;
// 22 %repeat
goto L_0012;
}
L_0013:;
// 23 %for i = 1, 2, 3 %cycle
// %for I = 1, 2, 3 %cycle
{
I = -1;
L_0014:
if (I == 3) goto L_0015;
I += 2;
// 24 %repeat
goto L_0014;
}
L_0015:;
// 25 %for i = 1, 1, 3 %cycle
// %for I = 1, 1, 3 %cycle
{
I = 0;
L_0016:
if (I == 3) goto L_0017;
I += 1;
// 26 %repeat
goto L_0016;
}
L_0017:;
// 27 %for i = 1, 2, 4 %cycle
// %for I = 1, 2, 4 %cycle
{
if (invalid_for_loop(1, 2, 4)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2, 4");
I = -1;
L_0018:
if (I == 4) goto L_0019;
I += 2;
// 28 %repeat
goto L_0018;
}
L_0019:;
// 29
// 30 init=-1; inc=-2; final=-3
INIT = -1;
INC = -2;
FINAL = -3;
// 31
// 32 %for i = init, inc, final %cycle
// %for I = INIT, INC, FINAL %cycle
{
int _initial = INIT, _increment = INC, _final = FINAL;
if (invalid_for_loop(_initial, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, FINAL");
I = _initial - _increment;
L_001A:
if (I == _final) goto L_001B;
I += _increment;
// 33 %repeat
goto L_001A;
}
L_001B:;
// 34 %for i = -1, inc, final %cycle
// %for I = -1, INC, FINAL %cycle
{
int _increment = INC, _final = FINAL;
if (invalid_for_loop(-1, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = -1, INC, FINAL");
I = -1 - _increment;
L_001C:
if (I == _final) goto L_001D;
I += _increment;
// 35 %repeat
goto L_001C;
}
L_001D:;
// 36 %for i = init, -2, final %cycle
// %for I = INIT, -2, FINAL %cycle
{
int _initial = INIT, _final = FINAL;
if (invalid_for_loop(_initial, -2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, -2, FINAL");
I = _initial - (-2);
L_001E:
if (I == _final) goto L_001F;
I -= 2;
// 37 %repeat
goto L_001E;
}
L_001F:;
// 38 %for i = init, -1, final %cycle
// %for I = INIT, -1, FINAL %cycle
{
int _initial = INIT, _final = FINAL;
if (invalid_for_loop(_initial, -1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, -1, FINAL");
I = _initial - (-1);
L_0020:
if (I == _final) goto L_0021;
I -= 1;
// 39 %repeat
goto L_0020;
}
L_0021:;
// 40 %for i = init, inc, -3 %cycle
// %for I = INIT, INC, -3 %cycle
{
int _initial = INIT, _increment = INC;
if (invalid_for_loop(_initial, _increment, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, -3");
I = _initial - _increment;
L_0022:
if (I == -3) goto L_0023;
I += _increment;
// 41 %repeat
goto L_0022;
}
L_0023:;
// 42 %for i = -1, -2, final %cycle
// %for I = -1, -2, FINAL %cycle
{
int _final = FINAL;
if (invalid_for_loop(-1, -2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = -1, -2, FINAL");
I = 1;
L_0024:
if (I == _final) goto L_0025;
I -= 2;
// 43 %repeat
goto L_0024;
}
L_0025:;
// 44 %for i = -1, -1, final %cycle
// %for I = -1, -1, FINAL %cycle
{
int _final = FINAL;
if (invalid_for_loop(-1, -1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = -1, -1, FINAL");
I = 0;
L_0026:
if (I == _final) goto L_0027;
I -= 1;
// 45 %repeat
goto L_0026;
}
L_0027:;
// 46 %for i = init, -2, -3 %cycle
// %for I = INIT, -2, -3 %cycle
{
int _initial = INIT;
if (invalid_for_loop(_initial, -2, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, -2, -3");
I = _initial - (-2);
L_0028:
if (I == -3) goto L_0029;
I -= 2;
// 47 %repeat
goto L_0028;
}
L_0029:;
// 48 %for i = init, -1, -3 %cycle
// %for I = INIT, -1, -3 %cycle
{
int _initial = INIT;
if (invalid_for_loop(_initial, -1, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, -1, -3");
I = _initial - (-1);
L_002A:
if (I == -3) goto L_002B;
I -= 1;
// 49 %repeat
goto L_002A;
}
L_002B:;
// 50 %for i = -1, inc, -3 %cycle
// %for I = -1, INC, -3 %cycle
{
int _increment = INC;
if (invalid_for_loop(-1, _increment, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = -1, INC, -3");
I = -1 - _increment;
L_002C:
if (I == -3) goto L_002D;
I += _increment;
// 51 %repeat
goto L_002C;
}
L_002D:;
// 52 %for i = -1, -2, -3 %cycle
// %for I = -1, -2, -3 %cycle
{
I = 1;
L_002E:
if (I == -3) goto L_002F;
I -= 2;
// 53 %repeat
goto L_002E;
}
L_002F:;
// 54 %for i = -1, -1, -3 %cycle
// %for I = -1, -1, -3 %cycle
{
I = 0;
L_0030:
if (I == -3) goto L_0031;
I -= 1;
// 55 %repeat
goto L_0030;
}
L_0031:;
// 56 %for i = -1, -2, -4 %cycle
// %for I = -1, -2, -4 %cycle
{
if (invalid_for_loop(-1, -2, -4)) _imp_signal(5, 1, 0, "Illegal cycle I = -1, -2, -4");
I = 1;
L_0032:
if (I == -4) goto L_0033;
I -= 2;
// 57 %repeat
goto L_0032;
}
L_0033:;
// 58
// 59 init=1; inc=2; final=-3
INIT = 1;
INC = 2;
FINAL = -3;
// 60
// 61 %for i = init, inc, final %cycle
// %for I = INIT, INC, FINAL %cycle
{
int _initial = INIT, _increment = INC, _final = FINAL;
if (invalid_for_loop(_initial, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, FINAL");
I = _initial - _increment;
L_0034:
if (I == _final) goto L_0035;
I += _increment;
// 62 %repeat
goto L_0034;
}
L_0035:;
// 63 %for i = 1, inc, final %cycle
// %for I = 1, INC, FINAL %cycle
{
int _increment = INC, _final = FINAL;
if (invalid_for_loop(1, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, INC, FINAL");
I = 1 - _increment;
L_0036:
if (I == _final) goto L_0037;
I += _increment;
// 64 %repeat
goto L_0036;
}
L_0037:;
// 65 %for i = init, 2, final %cycle
// %for I = INIT, 2, FINAL %cycle
{
int _initial = INIT, _final = FINAL;
if (invalid_for_loop(_initial, 2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 2, FINAL");
I = _initial - (2);
L_0038:
if (I == _final) goto L_0039;
I += 2;
// 66 %repeat
goto L_0038;
}
L_0039:;
// 67 %for i = init, 1, final %cycle
// %for I = INIT, 1, FINAL %cycle
{
int _initial = INIT, _final = FINAL;
if (invalid_for_loop(_initial, 1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 1, FINAL");
I = _initial - (1);
L_003A:
if (I == _final) goto L_003B;
I += 1;
// 68 %repeat
goto L_003A;
}
L_003B:;
// 69 %for i = init, inc, -3 %cycle
// %for I = INIT, INC, -3 %cycle
{
int _initial = INIT, _increment = INC;
if (invalid_for_loop(_initial, _increment, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, -3");
I = _initial - _increment;
L_003C:
if (I == -3) goto L_003D;
I += _increment;
// 70 %repeat
goto L_003C;
}
L_003D:;
// 71 %for i = 1, 2, final %cycle
// %for I = 1, 2, FINAL %cycle
{
int _final = FINAL;
if (invalid_for_loop(1, 2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2, FINAL");
I = -1;
L_003E:
if (I == _final) goto L_003F;
I += 2;
// 72 %repeat
goto L_003E;
}
L_003F:;
// 73 %for i = 1, 1, final %cycle
// %for I = 1, 1, FINAL %cycle
{
int _final = FINAL;
if (invalid_for_loop(1, 1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 1, FINAL");
I = 0;
L_0040:
if (I == _final) goto L_0041;
I += 1;
// 74 %repeat
goto L_0040;
}
L_0041:;
// 75 %for i = init, 2, -3 %cycle
// %for I = INIT, 2, -3 %cycle
{
int _initial = INIT;
if (invalid_for_loop(_initial, 2, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 2, -3");
I = _initial - (2);
L_0042:
if (I == -3) goto L_0043;
I += 2;
// 76 %repeat
goto L_0042;
}
L_0043:;
// 77 %for i = init, 1, -3 %cycle
// %for I = INIT, 1, -3 %cycle
{
int _initial = INIT;
if (invalid_for_loop(_initial, 1, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 1, -3");
I = _initial - (1);
L_0044:
if (I == -3) goto L_0045;
I += 1;
// 78 %repeat
goto L_0044;
}
L_0045:;
// 79 %for i = 1, inc, -3 %cycle
// %for I = 1, INC, -3 %cycle
{
int _increment = INC;
if (invalid_for_loop(1, _increment, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, INC, -3");
I = 1 - _increment;
L_0046:
if (I == -3) goto L_0047;
I += _increment;
// 80 %repeat
goto L_0046;
}
L_0047:;
// 81 %for i = 1, 2, -3 %cycle
// %for I = 1, 2, -3 %cycle
{
if (invalid_for_loop(1, 2, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2, -3");
I = -1;
L_0048:
if (I == -3) goto L_0049;
I += 2;
// 82 %repeat
goto L_0048;
}
L_0049:;
// 83 %for i = 1, 1, -3 %cycle
// %for I = 1, 1, -3 %cycle
{
if (invalid_for_loop(1, 1, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 1, -3");
I = 0;
L_004A:
if (I == -3) goto L_004B;
I += 1;
// 84 %repeat
goto L_004A;
}
L_004B:;
// 85 %for i = 1, 2, -4 %cycle
// %for I = 1, 2, -4 %cycle
{
if (invalid_for_loop(1, 2, -4)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2, -4");
I = -1;
L_004C:
if (I == -4) goto L_004D;
I += 2;
// 86 %repeat
goto L_004C;
}
L_004D:;
// 87
// 88 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}