#include uint16_t diacritic_to_num(uint32_t code) { switch (code) { case 0x305: return code - 0x305 + 1; case 0x30d: case 0x30e: return code - 0x30d + 2; case 0x310: return code - 0x310 + 4; case 0x312: return code - 0x312 + 5; case 0x33d: case 0x33e: case 0x33f: return code - 0x33d + 6; case 0x346: return code - 0x346 + 9; case 0x34a: case 0x34b: case 0x34c: return code - 0x34a + 10; case 0x350: case 0x351: case 0x352: return code - 0x350 + 13; case 0x357: return code - 0x357 + 16; case 0x35b: return code - 0x35b + 17; case 0x363: case 0x364: case 0x365: case 0x366: case 0x367: case 0x368: case 0x369: case 0x36a: case 0x36b: case 0x36c: case 0x36d: case 0x36e: case 0x36f: return code - 0x363 + 18; case 0x483: case 0x484: case 0x485: case 0x486: case 0x487: return code - 0x483 + 31; case 0x592: case 0x593: case 0x594: case 0x595: return code - 0x592 + 36; case 0x597: case 0x598: case 0x599: return code - 0x597 + 40; case 0x59c: case 0x59d: case 0x59e: case 0x59f: case 0x5a0: case 0x5a1: return code - 0x59c + 43; case 0x5a8: case 0x5a9: return code - 0x5a8 + 49; case 0x5ab: case 0x5ac: return code - 0x5ab + 51; case 0x5af: return code - 0x5af + 53; case 0x5c4: return code - 0x5c4 + 54; case 0x610: case 0x611: case 0x612: case 0x613: case 0x614: case 0x615: case 0x616: case 0x617: return code - 0x610 + 55; case 0x657: case 0x658: case 0x659: case 0x65a: case 0x65b: return code - 0x657 + 63; case 0x65d: case 0x65e: return code - 0x65d + 68; case 0x6d6: case 0x6d7: case 0x6d8: case 0x6d9: case 0x6da: case 0x6db: case 0x6dc: return code - 0x6d6 + 70; case 0x6df: case 0x6e0: case 0x6e1: case 0x6e2: return code - 0x6df + 77; case 0x6e4: return code - 0x6e4 + 81; case 0x6e7: case 0x6e8: return code - 0x6e7 + 82; case 0x6eb: case 0x6ec: return code - 0x6eb + 84; case 0x730: return code - 0x730 + 86; case 0x732: case 0x733: return code - 0x732 + 87; case 0x735: case 0x736: return code - 0x735 + 89; case 0x73a: return code - 0x73a + 91; case 0x73d: return code - 0x73d + 92; case 0x73f: case 0x740: case 0x741: return code - 0x73f + 93; case 0x743: return code - 0x743 + 96; case 0x745: return code - 0x745 + 97; case 0x747: return code - 0x747 + 98; case 0x749: case 0x74a: return code - 0x749 + 99; case 0x7eb: case 0x7ec: case 0x7ed: case 0x7ee: case 0x7ef: case 0x7f0: case 0x7f1: return code - 0x7eb + 101; case 0x7f3: return code - 0x7f3 + 108; case 0x816: case 0x817: case 0x818: case 0x819: return code - 0x816 + 109; case 0x81b: case 0x81c: case 0x81d: case 0x81e: case 0x81f: case 0x820: case 0x821: case 0x822: case 0x823: return code - 0x81b + 113; case 0x825: case 0x826: case 0x827: return code - 0x825 + 122; case 0x829: case 0x82a: case 0x82b: case 0x82c: case 0x82d: return code - 0x829 + 125; case 0x951: return code - 0x951 + 130; case 0x953: case 0x954: return code - 0x953 + 131; case 0xf82: case 0xf83: return code - 0xf82 + 133; case 0xf86: case 0xf87: return code - 0xf86 + 135; case 0x135d: case 0x135e: case 0x135f: return code - 0x135d + 137; case 0x17dd: return code - 0x17dd + 140; case 0x193a: return code - 0x193a + 141; case 0x1a17: return code - 0x1a17 + 142; case 0x1a75: case 0x1a76: case 0x1a77: case 0x1a78: case 0x1a79: case 0x1a7a: case 0x1a7b: case 0x1a7c: return code - 0x1a75 + 143; case 0x1b6b: return code - 0x1b6b + 151; case 0x1b6d: case 0x1b6e: case 0x1b6f: case 0x1b70: case 0x1b71: case 0x1b72: case 0x1b73: return code - 0x1b6d + 152; case 0x1cd0: case 0x1cd1: case 0x1cd2: return code - 0x1cd0 + 159; case 0x1cda: case 0x1cdb: return code - 0x1cda + 162; case 0x1ce0: return code - 0x1ce0 + 164; case 0x1dc0: case 0x1dc1: return code - 0x1dc0 + 165; case 0x1dc3: case 0x1dc4: case 0x1dc5: case 0x1dc6: case 0x1dc7: case 0x1dc8: case 0x1dc9: return code - 0x1dc3 + 167; case 0x1dcb: case 0x1dcc: return code - 0x1dcb + 174; case 0x1dd1: case 0x1dd2: case 0x1dd3: case 0x1dd4: case 0x1dd5: case 0x1dd6: case 0x1dd7: case 0x1dd8: case 0x1dd9: case 0x1dda: case 0x1ddb: case 0x1ddc: case 0x1ddd: case 0x1dde: case 0x1ddf: case 0x1de0: case 0x1de1: case 0x1de2: case 0x1de3: case 0x1de4: case 0x1de5: case 0x1de6: return code - 0x1dd1 + 176; case 0x1dfe: return code - 0x1dfe + 198; case 0x20d0: case 0x20d1: return code - 0x20d0 + 199; case 0x20d4: case 0x20d5: case 0x20d6: case 0x20d7: return code - 0x20d4 + 201; case 0x20db: case 0x20dc: return code - 0x20db + 205; case 0x20e1: return code - 0x20e1 + 207; case 0x20e7: return code - 0x20e7 + 208; case 0x20e9: return code - 0x20e9 + 209; case 0x20f0: return code - 0x20f0 + 210; case 0x2cef: case 0x2cf0: case 0x2cf1: return code - 0x2cef + 211; case 0x2de0: case 0x2de1: case 0x2de2: case 0x2de3: case 0x2de4: case 0x2de5: case 0x2de6: case 0x2de7: case 0x2de8: case 0x2de9: case 0x2dea: case 0x2deb: case 0x2dec: case 0x2ded: case 0x2dee: case 0x2def: case 0x2df0: case 0x2df1: case 0x2df2: case 0x2df3: case 0x2df4: case 0x2df5: case 0x2df6: case 0x2df7: case 0x2df8: case 0x2df9: case 0x2dfa: case 0x2dfb: case 0x2dfc: case 0x2dfd: case 0x2dfe: case 0x2dff: return code - 0x2de0 + 214; case 0xa66f: return code - 0xa66f + 246; case 0xa67c: case 0xa67d: return code - 0xa67c + 247; case 0xa6f0: case 0xa6f1: return code - 0xa6f0 + 249; case 0xa8e0: case 0xa8e1: case 0xa8e2: case 0xa8e3: case 0xa8e4: case 0xa8e5: case 0xa8e6: case 0xa8e7: case 0xa8e8: case 0xa8e9: case 0xa8ea: case 0xa8eb: case 0xa8ec: case 0xa8ed: case 0xa8ee: case 0xa8ef: case 0xa8f0: case 0xa8f1: return code - 0xa8e0 + 251; case 0xaab0: return code - 0xaab0 + 269; case 0xaab2: case 0xaab3: return code - 0xaab2 + 270; case 0xaab7: case 0xaab8: return code - 0xaab7 + 272; case 0xaabe: case 0xaabf: return code - 0xaabe + 274; case 0xaac1: return code - 0xaac1 + 276; case 0xfe20: case 0xfe21: case 0xfe22: case 0xfe23: case 0xfe24: case 0xfe25: case 0xfe26: return code - 0xfe20 + 277; case 0x10a0f: return code - 0x10a0f + 284; case 0x10a38: return code - 0x10a38 + 285; case 0x1d185: case 0x1d186: case 0x1d187: case 0x1d188: case 0x1d189: return code - 0x1d185 + 286; case 0x1d1aa: case 0x1d1ab: case 0x1d1ac: case 0x1d1ad: return code - 0x1d1aa + 291; case 0x1d242: case 0x1d243: case 0x1d244: return code - 0x1d242 + 295; } return 0; }