+/* Cases for hex letter digits, digits, lower, and upper, offset by N. */
+
+#define _C_CTYPE_A_THRU_F_N(n) \
+ case 'a' + (n): case 'b' + (n): case 'c' + (n): case 'd' + (n): \
+ case 'e' + (n): case 'f' + (n): \
+ case 'A' + (n): case 'B' + (n): case 'C' + (n): case 'D' + (n): \
+ case 'E' + (n): case 'F' + (n)
+#define _C_CTYPE_DIGIT_N(n) \
+ case '0' + (n): case '1' + (n): case '2' + (n): case '3' + (n): \
+ case '4' + (n): case '5' + (n): case '6' + (n): case '7' + (n): \
+ case '8' + (n): case '9' + (n)
+#define _C_CTYPE_LOWER_N(n) \
+ case 'a' + (n): case 'b' + (n): case 'c' + (n): case 'd' + (n): \
+ case 'e' + (n): case 'f' + (n): case 'g' + (n): case 'h' + (n): \
+ case 'i' + (n): case 'j' + (n): case 'k' + (n): case 'l' + (n): \
+ case 'm' + (n): case 'n' + (n): case 'o' + (n): case 'p' + (n): \
+ case 'q' + (n): case 'r' + (n): case 's' + (n): case 't' + (n): \
+ case 'u' + (n): case 'v' + (n): case 'w' + (n): case 'x' + (n): \
+ case 'y' + (n): case 'z' + (n)
+#define _C_CTYPE_UPPER_N(n) \
+ case 'A' + (n): case 'B' + (n): case 'C' + (n): case 'D' + (n): \
+ case 'E' + (n): case 'F' + (n): case 'G' + (n): case 'H' + (n): \
+ case 'I' + (n): case 'J' + (n): case 'K' + (n): case 'L' + (n): \
+ case 'M' + (n): case 'N' + (n): case 'O' + (n): case 'P' + (n): \
+ case 'Q' + (n): case 'R' + (n): case 'S' + (n): case 'T' + (n): \
+ case 'U' + (n): case 'V' + (n): case 'W' + (n): case 'X' + (n): \
+ case 'Y' + (n): case 'Z' + (n)
+
+/* Given MACRO_N, expand to all the cases for the corresponding class. */
+#if _C_CTYPE_SIGNED_EBCDIC
+# define _C_CTYPE_CASES(macro_n) macro_n (0): macro_n (256)
+#else
+# define _C_CTYPE_CASES(macro_n) macro_n (0)
+#endif