#!/usr/bin/nickle

int flip_bits(int a, int n)
{
	int result = 0;
	for (int pos = 0; pos < n; pos++)
		if ((a & (1 << pos)) != 0)
			result |= (1 << (n - 1 - pos));
	return result;
}

void print_flip_bits(string name, int n) {
	printf ("static const uint8_t %s_%d[%d] = {\n", name, n, 1 << n);

	for (int i = 0; i < 1 << n; i++) {
		printf (" 0x%02x,", flip_bits(i, n));
		if ((i & 0xf) == 0xf)
			printf("\n");
	}
	printf("};\n");
}

print_flip_bits("ao_flip_bits", 8);
print_flip_bits("ao_flip_bits", 2);
