#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2
// 3 %longreal x, r
double X;
double R;
// 4
// 5 %integer i
int I;
// 6 %longrealname rn
double *RN;
// 7 %longrealarray rra(0:9)
double RRA[10];
// 8 %longrealnamearray rna(0:9)
double *RNA[10];
// 9 %longrealnamearrayname rnan
double **RNAN;
// 10 %longrealmap rm(%integer i); %result == r; %end
double *RM(int I)
{
return /*?*/ &R;
} /* end of RM */
// ?I unused
// 11 %longrealmap rm2(%integer i); %result == rn; %end
double *RM2(int I)
{
return RN;
} /* end of RM2 */
// ?I unused
// 12 %longrealmap rm3(%integer i); %result == rra(i); %end
double *RM3(int I)
{
return /*?*/ &RRA[I];
} /* end of RM3 */
// 13 %longrealmap rm4(%integer i); %result == rna(i); %end
double *RM4(int I)
{
return RNA[I];
} /* end of RM4 */
// 14 %longrealmap rm5(%integer i); %result == rnan(i); %end
double *RM5(int I)
{
return [/*BUG*/ 0];
} /* end of RM5 */
// 15 rn == r
RN = (double *)/*?*/ &R;
// 16 x = r
X = R;
// 17 x = rn
X = *RN;
// 18 rn = x
*RN = X;
// 19 x = rra(i)
X = RRA[I];
// 20 rn == rra(i)
RN = (double *)/*?*/ &RRA[I];
// 21 x = rra(i)
X = RRA[I];
// 22 rra(i) = x
RRA[I] = X;
// 23 rn == rna(i)
RN = (double *)RNA[I];
// 24 x = rna(i)
X = *RNA[I];
// 25 rnan == rna
RNAN = (double *)RNA;
// 26 rn == rnan(i)
RN = (double *)[/*BUG*/ 0];
// 27 x = rnan(i)
X = *[/*BUG*/ 0];
// 28 rnan(i) = x
*[/*BUG*/ 0] = X;
// 29 rn == rm(i)
RN = (double *)RM(I);
// 30 x = rm(i)
X = *RM(I);
// 31 rm(i) = x
*RM(I) = X;
// 32 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}