#include bool_t pac_rune_is_sign_of_block_1(rune_t rune) { if(rune < 0x21) return FALSE; if(rune > 0x2f) return FALSE; return TRUE; } bool_t pac_rune_is_sign_of_block_2(rune_t rune) { if(rune < 0x3a) return FALSE; if(rune > 0x40) return FALSE; return TRUE; } bool_t pac_rune_is_sign_of_block_3(rune_t rune) { if(rune < 0x5b) return FALSE; if(rune > 0x60) return FALSE; return TRUE; } bool_t pac_rune_is_sign_of_block_4(rune_t rune) { if(rune < 0x7b) return FALSE; if(rune > 0x7e) return FALSE; return TRUE; } bool_t pac_rune_is_lower_letter(rune_t rune) { if(rune < 'a') return FALSE; if(rune > 'z') return FALSE; return TRUE; } bool_t pac_rune_is_upper_letter(rune_t rune) { if(rune < 'A') return FALSE; if(rune > 'Z') return FALSE; return TRUE; } bool_t pac_rune_is_letter(rune_t rune) { if(pac_rune_is_lower_letter(rune)) return TRUE; if(pac_rune_is_upper_letter(rune)) return TRUE; return FALSE; } bool_t pac_rune_is_digit(rune_t rune) { if(rune < '0') return FALSE; if(rune > '9') return FALSE; return TRUE; } bool_t pac_rune_is_blank(rune_t rune) { if(rune == ' ') return TRUE; if(rune == '\t') return TRUE; return FALSE; } bool_t pac_rune_is_sign(rune_t rune) { if(pac_rune_is_sign_of_block_1(rune)) return TRUE; if(pac_rune_is_sign_of_block_2(rune)) return TRUE; if(pac_rune_is_sign_of_block_3(rune)) return TRUE; if(pac_rune_is_sign_of_block_4(rune)) return TRUE; return FALSE; }