@{ nTimes = `constant 10; forLoop = `statement for (int i = 0; i < 10; ++i) printf("%d\n", i); ; whileLoop = `statement while (i < 10) { printf("%d\n", i); ++il; }; useForLoop = 1; x = null; } @{forLoop = `statement for (int i = 0; i < 10; ++i) printf("%d\n", i);;} @{if (useForLoop) { x = forLoop;} else { x = whileLoop; } } int main() { @(x); @(`statement for (int i = 0; i < @(nTimes); ++i) printf("%d\n", i);); @{if (useForLoop) {forLoop;} else {whileLoop;}}; // Impossible to modify useForLoop in a function return 0; }