#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 !%permintegerfnspec int pt(%real r)
// 2 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 3 %integer x
int X;
// 4
// 5 x = 2 * 3 + 4 ;! no extra brackets when Imp precedence matches C precedence
X = 2 * 3 + 4;
// 6 x = 2 + 3 * 4 ;! no extra brackets when Imp precedence matches C precedence
X = 2 + 3 * 4;
// 7 x = 2 + 3 * 4 + 5 ;! no extra brackets when Imp precedence matches C precedence
X = 2 + 3 * 4 + 5;
// 8
// 9 x = 2 * ( 3 + 4) ;! explicit brackets are honoured
X = 2 * (3 + 4);
// 10 x = (2 * 3) + 4
X = 2 * 3 + 4;
// 11
// 12 x = 1 & 2 + 3 & 4 ;! an Imp to C gotcha!
X = (1 & 2) + (3 & 4);
// 13
// 14 x = 123 & 12 + 234 ! 23 * 345 !! 34 - 45 - INTPT(1.5 ^ 2 / 5.0) << 2 >> 3 ^^ 2 ^^ 2
X = (((123 & 12) + 234 | 23 * 345) ^ 34) - 45 -
_imp_IEXP(_imp_IEXP((unsigned int)_imp_INTPT((double)(_imp_REXP(1.5, 2) / 5.0)) << 2 >> 3, 2), 2);
// 15
// 16 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}