typeinfo
typeinfo("float", FLOAT, FLOAT, FLOAT_SIZE, 1, 'f'),
typeinfo("double", DOUBLE, DOUBLE, DOUBLE_SIZE, 2, 'f'),
typeinfo("long double", LDOUBLE, LDOUBLE, LDOUBLE_SIZE, 3, 'f'),
typeinfo("_Complex", NO_TSPEC, NO_TSPEC, 0, 0, ' '),
typeinfo(NULL, NO_TSPEC, NO_TSPEC, 0, 0, ' '),
typeinfo("float _Complex", FCOMPLEX, FCOMPLEX,
typeinfo("double _Complex", DCOMPLEX, DCOMPLEX,
typeinfo("long double _Complex", LCOMPLEX, LCOMPLEX,
typeinfo("void", VOID, VOID, 0, 0, ' '),
typeinfo("auto", AUTO_TYPE, AUTO_TYPE, 0, 0, ' '),
typeinfo("struct", STRUCT, STRUCT, 0, 0, ' '),
typeinfo("union", UNION, UNION, 0, 0, ' '),
typeinfo("enum", ENUM, ENUM, ENUM_SIZE, INT_RANK, 's'),
typeinfo("pointer", PTR, PTR, PTR_SIZE, 5, 'p'),
typeinfo("array", ARRAY, ARRAY, 0, 0, ' '),
typeinfo("function", FUNC, FUNC, 0, 0, ' '),
typeinfo(NULL, NO_TSPEC, NO_TSPEC, 0, 0, ' '),
typeinfo("signed", SIGNED, UNSIGN, 0, 0, ' '),
typeinfo("unsigned", SIGNED, UNSIGN, 0, 0, ' '),
typeinfo("_Bool", BOOL, BOOL, CHAR_SIZE, 1, 'u'),
typeinfo("char", SCHAR, UCHAR, CHAR_SIZE, 2,
typeinfo("signed char", SCHAR, UCHAR, CHAR_SIZE, 2, 's'),
typeinfo("unsigned char", SCHAR, UCHAR, CHAR_SIZE, 2, 'u'),
typeinfo("short", SHORT, USHORT, SHORT_SIZE, 3, 's'),
typeinfo("unsigned short", SHORT, USHORT, SHORT_SIZE, 3, 'u'),
typeinfo("int", INT, UINT, INT_SIZE, INT_RANK, 's'),
typeinfo("unsigned int", INT, UINT, INT_SIZE, INT_RANK, 'u'),
typeinfo("long", LONG, ULONG, LONG_SIZE, 5, 's'),
typeinfo("unsigned long", LONG, ULONG, LONG_SIZE, 5, 'u'),
typeinfo("long long", LLONG, ULLONG, LLONG_SIZE, 6, 's'),
typeinfo("unsigned long long", LLONG, ULLONG, LLONG_SIZE, 6, 'u'),
typeinfo("__int128_t", INT128, UINT128, 128, 7, 's'),
typeinfo("__uint128_t", INT128, UINT128, 128, 7, 'u'),