#include <perms.h>

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

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

  //     2
  //     3    %recordformat db(%record (db) %name %array Bound(0:10), %integer low, high)

  struct DB {
    union {
      struct {
        struct DB *BOUND[11];
        int LOW;
        int HIGH;
      };
    };
  };

  //     4    %record (db) Dope

  struct DB DOPE;

  //     5    %record (db) %name B

  struct DB *B;

  //     6    %integer J = 3

  int J;
  J = 3;

  //     7
  //     8    B == Dope_Bound(J)

  B = (struct DB *)DOPE.BOUND[J];

  //     9
  //    10  %endofprogram

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