#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  %begin

int main(int argc, char **argv) { /*%begin*/
  _imp_initialise(argc, argv);

  //     2  %integerarray array(0:9)

  int ARRAY[10];
  _imp_create_constdv(, int, ARRAY, 0, 9);

  //     3  %integerarrayname arrayname

  int *ARRAYNAME;
  struct _imp_dv ARRAYNAME_dv = {0};  // assignment of an array to an arrayname must copy bounds info too...

  //     4  arrayname == array

  ARRAYNAME = (int *)ARRAY;
  ARRAYNAME_dv = ARRAY_dv;

  //     5  arrayname(2) = 3

  _imp_aref(int, ARRAYNAME, 2) = 3;

  //     6  %endofprogram

  _imp_stop(0);
  return 0;
end_0:;
}