#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %byteinteger bi1
unsigned char BI1;
// 3 %shortinteger si1
short int SI1;
// 4 %integer i1
int I1;
// 5 %longinteger li1
long int LI1;
// 6 %real r1
float R1;
// 7 %longreal lr1
double LR1;
// 8 %string (15) s15 1
_imp_string15 S151;
// 9 %string (255) s255 1
_imp_string255 S2551;
// 10
// 11 %byteinteger bi
unsigned char BI;
// 12 %shortinteger si
short int SI;
// 13 %integer i
int I;
// 14 %longinteger li
long int LI;
// 15 %real r
float R;
// 16 %longreal lr
double LR;
// 17 %string (15) s15
_imp_string15 S15;
// 18 %string (255) s255
_imp_string255 S255;
// 19
// 20 %byteinteger bi2
unsigned char BI2;
// 21 %shortinteger si2
short int SI2;
// 22 %integer i2
int I2;
// 23 %longinteger li2
long int LI2;
// 24 %real r2
float R2;
// 25 %longreal lr2
double LR2;
// 26 %string (15) s15 2
_imp_string15 S152;
// 27 %string (255) s255 2
_imp_string255 S2552;
// 28
// 29 bi <- bi1
BI = (unsigned char)(BI1);
// 30 bi <- si1
BI = (unsigned char)(SI1);
// 31 bi <- i1
BI = (unsigned char)(I1);
// 32 bi <- li1
BI = (unsigned char)(LI1);
// 33
// 34 si <- bi1
SI = (short int)(BI1);
// 35 si <- si1
SI = (short int)(SI1);
// 36 si <- i1
SI = (short int)(I1);
// 37 si <- li1
SI = (short int)(LI1);
// 38
// 39 i <- bi1
I = (int)(BI1);
// 40 i <- si1
I = (int)(SI1);
// 41 i <- i1
I = (int)(I1);
// 42 i <- li1
I = (int)(LI1);
// 43
// 44 li <- bi1
LI = (long long int)(BI1);
// 45 li <- si1
LI = (long long int)(SI1);
// 46 li <- i1
LI = (long long int)(I1);
// 47 li <- li1
LI = (long long int)(LI1);
// 48
// 49 r <- bi1
R = (float)(BI1);
// 50 r <- si1
R = (float)(SI1);
// 51 r <- i1
R = (float)(I1);
// 52 r <- li1
R = (float)(LI1);
// 53 r <- r1
R = (float)(R1);
// 54 r <- lr1
R = (float)(LR1);
// 55
// 56 lr <- bi1
LR = (double)(BI1);
// 57 lr <- si1
LR = (double)(SI1);
// 58 lr <- i1
LR = (double)(I1);
// 59 lr <- li1
LR = (double)(LI1);
// 60 lr <- r1
LR = (double)(R1);
// 61 lr <- lr1
LR = (double)(LR1);
// 62
// 63 s15 <- s15 2
_imp_strncpy(/*?*/ &S15, ({
__typeof__(_imp_string15) tmp; /*C*/
tmp = S152;
(void *)&tmp;
}),
/*max:*/ 15);
// 64 s15 <- s255 2
_imp_strncpy(/*?*/ &S15, ({
__typeof__(_imp_string255) tmp; /*C*/
tmp = S2552;
(void *)&tmp;
}),
/*max:*/ 15);
/* truncated copy of no more than 15 chars */
if (*_imp_LENGTH((_imp_string *)/*?*/ &S15) > 15) *_imp_LENGTH((_imp_string *)/*?*/ &S15) = 15;
// 65 s255 <- s15 2
_imp_strncpy(/*?*/ &S255, ({
__typeof__(_imp_string15) tmp; /*C*/
tmp = S152;
(void *)&tmp;
}),
/*max:*/ 255);
// 66 s255 <- s255 2
_imp_strncpy(/*?*/ &S255, ({
__typeof__(_imp_string255) tmp; /*C*/
tmp = S2552;
(void *)&tmp;
}),
/*max:*/ 255);
// 67
// 68 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}