#include <perms.h>

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

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

  //     2      %integer I

  int I;

  //     3      I = 42

  I = 42;
  // typedef struct RECFM RECFM;

  //     4      %recordformatspec RECFM
  //     5      %integer %map {main} NEST1

  int *NEST1(void)
  {

    //     6        %integer FILLER

    int FILLER;

    //     7        FILLER = 17

    FILLER = 17;

    //     8        %own %record (RECFM) %name FRED

    static struct RECFM *FRED;

    //     9        %RESULT == INTEGER(ADDR(FRED))

    return _imp_INTEGER(_imp_ADDR(FRED));

    //    10        %end

  } /* end of NEST1 */

  //    11      %record (RECFM) %name ANOTHER

  struct RECFM *ANOTHER;

  //    12      %recordformat RECFM( %c

  struct RECFM {
    union {
      struct {
        int Q;
      };
    };
  };

  //    13+     %integer Q %c
  //    14+     )
  //    15
  //    16      {main} NEST1 = 42

  *NEST1() = 42;

  //    17      WRITE({main} NEST1, 0)

  _imp_WRITE(*NEST1(), 0);

  //    18      NEWLINE

  _imp_NEWLINE();

  //    19      %end

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

// ?ANOTHER unused
// ?RECFM unused
//    20    %end %of %file