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