>>105619108You can't do it with Python. The loop will use a branching jump and also the code that prints numbers will use branching jumps. You need to use C:
int putchar(int);
static void prn(const char* s) {
void* labels[] = {&&loop, &&end};
loop:
putchar(*s);
goto *labels[*s++ == 0];
end:;
}
int main() {
const char* const digits = "\0""0123456789";
const char* const fizz = "\0""fizz";
const char* const buzz = "\0""buzz";
void* labels[] = {&&loop, &&end};
int i = 1;
loop:
const int d3 = i % 3 == 0;
const int d5 = i % 5 == 0;
putchar(digits[(1 + i / 10) * !(d3 | d5 | (i < 10))]);
putchar(digits[(1 + i % 10) * !(d3 | d5)]);
prn(fizz + d3);
prn(buzz + d5);
putchar('\n');
goto *labels[++i > 100];
end:;
}