2023-05-04 10:43:04 +00:00
|
|
|
#include "ctype.h"
|
|
|
|
|
|
|
|
#include <ctype.h>
|
|
|
|
|
2023-05-05 10:03:32 +00:00
|
|
|
bool is_space(const char chr)
|
2023-05-04 10:43:04 +00:00
|
|
|
{
|
|
|
|
// ' ' (space)
|
|
|
|
// '\f' (form-feed)
|
|
|
|
// '\n' (newline)
|
|
|
|
// '\r' (carriage return)
|
|
|
|
// '\t' (horizontal tab)
|
|
|
|
// '\v' (vertical tab)
|
|
|
|
return isspace(chr);
|
|
|
|
}
|
|
|
|
|
2023-05-05 10:03:32 +00:00
|
|
|
bool is_tag(const char chr)
|
|
|
|
{
|
|
|
|
return isalnum(chr);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool is_ident_head(const char chr)
|
2023-05-04 10:43:04 +00:00
|
|
|
{
|
|
|
|
return isalpha(chr) ||
|
|
|
|
chr == '!' ||
|
|
|
|
chr == '$' ||
|
|
|
|
chr == '%' ||
|
|
|
|
chr == '&' ||
|
|
|
|
chr == '*' ||
|
|
|
|
chr == '+' ||
|
|
|
|
chr == '-' ||
|
|
|
|
chr == '.' ||
|
|
|
|
chr == '/' ||
|
|
|
|
chr == ':' ||
|
|
|
|
chr == '<' ||
|
|
|
|
chr == '=' ||
|
|
|
|
chr == '>' ||
|
|
|
|
chr == '?' ||
|
|
|
|
chr == '@' ||
|
|
|
|
chr == '^' ||
|
|
|
|
chr == '_' ||
|
|
|
|
chr == '~';
|
|
|
|
}
|
|
|
|
|
2023-05-05 10:03:32 +00:00
|
|
|
bool is_ident_tail(const char chr)
|
2023-05-04 10:43:04 +00:00
|
|
|
{
|
2023-05-04 11:22:11 +00:00
|
|
|
return is_ident_head(chr) || isdigit(chr);
|
2023-05-04 10:43:04 +00:00
|
|
|
}
|
|
|
|
|
2023-05-05 10:03:32 +00:00
|
|
|
bool is_number(const char chr)
|
2023-05-04 10:43:04 +00:00
|
|
|
{
|
|
|
|
return isdigit(chr);
|
|
|
|
}
|