#include <Char.hh> typedef struct TableEntry { Char16 normal; Char32 variant; } TableEntry; static TableEntry table[] = { { 0, 0 } }; #include <cstdio> int main() { unsigned i = 0; while (table[i].normal != 0) { unsigned i0 = i; while (table[i].normal == table[i + 1].normal - 1) i++; if (i0 == i) printf(" if (ch == 0x%04X) return 0x%04X;\n", table[i].normal, table[i].variant); else printf(" if (ch >= 0x%04X && ch <= 0x%04X) return table[ch - 0x%04X].variant;\n", table[i0].normal, table[i].normal, table[i0].normal - i0); i++; } return 0; } { 0x, 0x },