forked from Lephenixnoir/gint
65 lines
2.3 KiB
C
65 lines
2.3 KiB
C
#include <ctype.h>
|
|
|
|
enum {
|
|
cntrl = 0x01,
|
|
space = 0x02,
|
|
punct = 0x04,
|
|
print = 0x08,
|
|
upper = 0x20,
|
|
lower = 0x10,
|
|
digit = 0x40,
|
|
xdigt = 0x80,
|
|
};
|
|
|
|
uint8_t ctype_classes[0x80] = {
|
|
// Control characters.
|
|
cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
|
|
cntrl | space, // Tabulation
|
|
cntrl | space, cntrl | space, cntrl | space, cntrl | space,
|
|
cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
|
|
cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
|
|
|
|
// Space and some punctuation.
|
|
space | print,
|
|
punct | print, punct | print, punct | print, punct | print,
|
|
punct | print, punct | print, punct | print, punct | print,
|
|
punct | print, punct | print, punct | print, punct | print,
|
|
punct | print, punct | print, punct | print,
|
|
|
|
// Decimal digits.
|
|
digit | xdigt | print, digit | xdigt | print, digit | xdigt | print,
|
|
digit | xdigt | print, digit | xdigt | print, digit | xdigt | print,
|
|
digit | xdigt | print, digit | xdigt | print, digit | xdigt | print,
|
|
digit | xdigt | print,
|
|
|
|
// Some punctuation.
|
|
punct | print, punct | print, punct | print, punct | print,
|
|
punct | print, punct | print, punct | print,
|
|
|
|
// Uppercase alphabet.
|
|
upper | xdigt | print, upper | xdigt | print, upper | xdigt | print,
|
|
upper | xdigt | print, upper | xdigt | print, upper | xdigt | print,
|
|
upper | print, upper | print, upper | print, upper | print,
|
|
upper | print, upper | print, upper | print, upper | print,
|
|
upper | print, upper | print, upper | print, upper | print,
|
|
upper | print, upper | print, upper | print, upper | print,
|
|
upper | print, upper | print, upper | print, upper | print,
|
|
|
|
// Other punctuation symbols.
|
|
punct | print, punct | print, punct | print, punct | print,
|
|
punct | print, punct | print,
|
|
|
|
// Lowercase alphabet.
|
|
lower | xdigt | print, lower | xdigt | print, lower | xdigt | print,
|
|
lower | xdigt | print, lower | xdigt | print, lower | xdigt | print,
|
|
lower | print, lower | print, lower | print, lower | print,
|
|
lower | print, lower | print, lower | print, lower | print,
|
|
lower | print, lower | print, lower | print, lower | print,
|
|
lower | print, lower | print, lower | print, lower | print,
|
|
lower | print, lower | print, lower | print, lower | print,
|
|
|
|
// Last punctuation characters and DEL.
|
|
punct | print, punct | print, punct | print, punct | print,
|
|
cntrl
|
|
};
|