#include long NextComb(); static long V[6] = { 0, 1, 2, 3, 4, 5 }; void main(int argc,char *argv[]) { for (long x=0 ; x<10000 ; x++) { long rv = 1; while (rv) { fprintf(stdout,"(%d,%d,%d,%d,%d)\n",V[1],V[2],V[3],V[4],V[5]); rv = NextComb(); } } } extern int XXA1,XXB2,XXC3,XXD4,XXE5; static void * S1 = &XXA1,*S2 = &XXB2,*S3 = &XXC3, * S4 = &XXD4, * S5 = &XXE5; long NextComb() { goto * S5; asm("XXE5: \n\t.global\tXXE5\n"); E5: S5 = &&E6; V[5] = 6; return 1; E6: S5 = &&E7; V[5] = 7; return 1; E7: S5 = &&E8; V[5] = 8; return 1; E8: S5 = &&E9; V[5] = 9; return 1; E9: S5 = &&E10; V[5] = 10; return 1; E10: goto *S4; asm("XXD4: \n\t.global\tXXD4\n"); D4: S4 = &&D5; V[4] = 5; S5 = &&E5; goto *S5; D5: S4 = &&D6; V[4] = 6; S5 = &&E6; goto *S5; D6: S4 = &&D7; V[4] = 7; S5 = &&E7; goto *S5; D7: S4 = &&D8; V[4] = 8; S5 = &&E8; goto *S5; D8: S4 = &&D9; V[4] = 9; S5 = &&E9; goto *S5; D9: goto *S3; asm("XXC3: \n\t.global\tXXC3\n"); C3: S3 = &&C4; V[3] = 4; S4 = &&D4; goto *S4; C4: S3 = &&C5; V[3] = 5; S4 = &&D5; goto *S4; C5: S3 = &&C6; V[3] = 6; S4 = &&D6; goto *S4; C6: S3 = &&C7; V[3] = 7; S4 = &&D7; goto *S4; C7: S3 = &&C8; V[3] = 8; S4 = &&D8; goto *S4; C8: goto *S2; asm("XXB2: \n\t.global\tXXB2\n"); B2: S2 = &&B3; V[2] = 3; S3 = &&C3; goto *S3; B3: S2 = &&B4; V[2] = 4; S3 = &&C4; goto *S3; B4: S2 = &&B5; V[2] = 5; S3 = &&C5; goto *S3; B5: S2 = &&B6; V[2] = 6; S3 = &&C6; goto *S3; B6: S2 = &&B7; V[2] = 7; S3 = &&C7; goto *S3; B7: goto *S1; asm("XXA1: \n\t.global\tXXA1\n"); A1: S1 = &&A2; V[1] = 2; S2 = &&B2; goto *S2; A2: S1 = &&A3; V[1] = 3; S2 = &&B3; goto *S2; A3: S1 = &&A4; V[1] = 4; S2 = &&B4; goto *S2; A4: S1 = &&A5; V[1] = 5; S2 = &&B5; goto *S2; A5: S1 = &&A6; V[1] = 6; S2 = &&B6; goto *S2; A6: S1 = &&A1; S2 = &&B2; S3 = &&C3; S4 = &&D4; S5 = &&E5; V[1] = 1; V[2] = 2; V[3] = 3; V[4] = 4; V[5] = 5; return 0; }