///////////////////////////////////////////////////////////////////////////////
//  IsCode.h

#ifndef ISCODE_H_
#define ISCODE_H_

#define IsKanji(a)		((static_cast<unsigned char>(a) >= 0x81 && static_cast<unsigned char>(a) <= 0x9f) || (static_cast<unsigned char>(a) >= 0xe0 && static_cast<unsigned char>(a) <= 0xef))
#define IsKanji2(a)		((static_cast<unsigned char>(a) >= 0x40 && static_cast<unsigned char>(a) <= 0x7e) || (static_cast<unsigned char>(a) >= 0x80 && static_cast<unsigned char>(a) <= 0xfc))
#define IsHalfKana(a)	(static_cast<unsigned char>(a) >= 0xa1 && static_cast<unsigned char>(a) <= 0xdf)
#define IsAlpha(a)		((static_cast<unsigned char>(a) >= 'a' && static_cast<unsigned char>(a) <= 'z') || (static_cast<unsigned char>(a) >= 'A' && static_cast<unsigned char>(a) <= 'Z'))
#define IsNumber(a)		(static_cast<unsigned char>(a) >= '0' && static_cast<unsigned char>(a) <= '9')
#define IsSpace(a)		(static_cast<unsigned char>(a) <= 0x20 || static_cast<unsigned char>(a) == 0x7f)
#define IsUpper(a)		(static_cast<unsigned char>(a) >= 'A' && static_cast<unsigned char>(a) <= 'Z')
#define IsLower(X)		(static_cast<unsigned char>(X) >= 'a' && static_cast<unsigned char>(X) <= 'z')
#define IsControl(X)	(static_cast<unsigned char>(X) <= 0x1f || static_cast<unsigned char>(X) == 0x7f)

#endif // ISCODE_H_

