S -> for ( E(1) ; {P1} E(2) ; {P2} E(3) ) {P3} S(1) {P4}
{P1} : { BACKPATCH(E(1).TRUE, NEXTQUAD); BACKPATCH(E(1).FALSE, NEXTQUAD); E2QUAD := NEXTQUAD; } {P2} : { E3QUAD := NEXTQUAD; } {P3} : { BACKPATCH(E(2).TRUE, NEXTQUAD); BACKPATCH(E(3).TRUE, E2QUAD); BACKPATCH(E(3).FALSE, E2QUAD); } {P4} : { BACKPATCH(S(1).NEXT, E3QUAD); GENQUAD('jump', '-', '-', E3QUAD); S.NEXT := E(2).FALSE; }