#include <perms.h>

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

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

  //     2    %integerfn fred(%integer i, j, k)

  int FRED(int I, int J, int K) {
    //     3      %result = i+j+k

    return I + J + K;

    //     4    %end

  } /* end of FRED */

  //     5    %integer q

  int Q;

  //     6    q = fred (1, 2, 3)

  Q = FRED(1, 2, 3);

  //     7    q = fred (fred(1, 2, 3), 4, 5)

  Q = FRED(FRED(1, 2, 3), 4, 5);

  //     8    q = fred (1, fred(2,3,4), 5)

  Q = FRED(1, FRED(2, 3, 4), 5);

  //     9    q = fred (1, 2, fred(3,4,5))

  Q = FRED(1, 2, FRED(3, 4, 5));

  //    10    q = fred (fred(1,2,3), fred(4,5,6), 7)

  Q = FRED(FRED(1, 2, 3), FRED(4, 5, 6), 7);

  //    11    q = fred (fred(1,2,3), 4, fred(5,6,7))

  Q = FRED(FRED(1, 2, 3), 4, FRED(5, 6, 7));

  //    12    q = fred (1, fred(2,3,4), fred(5,6,7))

  Q = FRED(1, FRED(2, 3, 4), FRED(5, 6, 7));

  //    13    q = fred (fred(1,2,3), fred(4,5,6), fred(7,8,9))

  Q = FRED(FRED(1, 2, 3), FRED(4, 5, 6), FRED(7, 8, 9));

  //    14  %endofprogram

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