/* p2 as a restartable subroutine */ p2(c,opcode) int c,opcode; { static int n,m; static int QS=1; if(opcode==NEW)QS=1; switch(QS){case 1: goto Q1;case 2:goto Q2; case 3:goto Q3;} /*G(c);*/Q1:; while( opcode!=EOF ){ /*line*/ for( m=1; opcode!=EOF AND m<=10; m++ ){ /*group*/ for( n=1; opcode!=EOF AND n<=5; n++ ){ putchar(c); /*G(c)*/QS=2;return(1);Q2:; }; putchar(' ') }; putchar('\n') }; QS=3;Q3:return(0); }