thp/src/lexic/utils.rs

33 lines
845 B
Rust
Raw Normal View History

2022-11-28 23:33:34 +00:00
pub fn is_digit(c: char) -> bool {
'0' <= c && c <= '9'
}
pub fn is_hex_digit(c: char) -> bool {
is_digit(c) || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F'
}
pub fn str_append(current: String, c: char) -> String {
format!("{}{}", current, c)
}
pub fn is_operator(c: char) -> bool {
c == '+' || c == '-' || c == '=' || c == '*' || c == '!'
|| c == '\\' || c == '/' || c == '|' || c == '@'
|| c == '#' || c == '$' || c == '~' || c == '%'
|| c == '&' || c == '?' || c == '<' || c == '>'
|| c == '^' || c == '.' || c == ':'
}
2022-11-30 13:38:43 +00:00
2022-12-01 13:33:48 +00:00
pub fn is_lowercase(c: char) -> bool {
c >= 'a' && c <= 'z'
}
pub fn is_uppercase(c: char) -> bool {
c >= 'A' && c <= 'Z'
}
pub fn is_identifier_char(c: char) -> bool {
is_lowercase(c) || is_uppercase(c) || c == '_' || is_digit(c)
2022-11-30 13:38:43 +00:00
}