#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  %recordformatspec fr
//     2  %recordformat rf(%integer qa, qb, %integername qc, %record(fr)%name backlink)

struct RF {
  union {
    struct {
      int QA;
      int QB;
      int *QC;
      struct FR *BACKLINK;
    };
  };
};

//     3  %recordformat fr(%integer a, %integername xa, %record (rf) rec, %record (rf) %name recn)

struct FR {
  union {
    struct {
      int A;
      int *XA;
      struct RF REC;
      struct RF *RECN;
    };
  };
};

//     4
//     5  %routine recparams(%integer x,y, %integername xp, %record (fr) r, %record (fr) %name rn)

static void RECPARAMS(int X, int Y, int *XP, struct FR R, struct FR *RN) {
  //     6    %integer i

  int I;

  //     7    %record (rf) local

  struct RF LOCAL;

  //     8  !  i = x
  //     9  !  i = xp
  //    10
  //    11    i = r_a

  I = R.A;

  //    12    i = r_xa

  I = *R.XA;

  //    13  !  i = r_rec_qa
  //    14  !  i = r_rec_qc
  //    15  !  i = r_recn_qa
  //    16    i = r_recn_qc

  I = *R.RECN->QC;

  //    17
  //    18  !  i = rn_a
  //    19  !  i = rn_xa
  //    20  !  local = rn_rec
  //    21  !  i = rn_rec_qa
  //    22  !  i = rn_rec_qc
  //    23  !  i = rn_recn_qa
  //    24  !  i = rn_recn_qc
  //    25
  //    26  ! ? rn_a
  //    27
  //    28  %end

  return;
} /* end of RECPARAMS */

// ?LOCAL unused
// ?RN unused
// ?XP unused
// ?Y unused
// ?X unused
//    29
//    30  %endoffile