#include <perms.h>

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

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

  //     2    %integer x

  int X;

  //     3    x = 4

  X = 4;

  //     4    %for x = 1, 1, x %cycle

  // %for X = 1, 1, X %cycle
  {
    int _final = X;
    if (invalid_for_loop(1, 1, _final)) _imp_signal(5, 1, 0, "Illegal cycle X = 1, 1, X");
    X = 0;
  L_0001:
    if (X == _final) goto L_0002;
    X += 1;

    //     5      write(x, -1)

    _imp_WRITE(X, -1);

    //     6      newline

    _imp_NEWLINE();

    //     7    %repeat

    goto L_0001;
  }

L_0002:;

//     8  %endofprogram

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