fix(is_valid_c_sym)

This commit is contained in:
anon 2024-12-16 00:44:50 +01:00
parent eab8920b99
commit 54d1af9b88

@ -699,14 +699,18 @@ void trim_trailing_ws(char *str, size_t len) {
static inline static inline
bool is_valid_c_symbol(char *str) { bool is_valid_c_symbol(char *str) {
/* A symbol must start with an underscore or an alpha-numerical char */ /* C symbols are of the following pattern:
if ((!isalpha((unsigned char)*str)) && (*str != '_')) { * [$_a-zA-Z][_a-zA-Z0-9]*
*/
if ((!isalpha((unsigned char)*str))
&& (*str != '_')
&& (*str != '$')) {
return false; return false;
} }
/* Check whole string to ensure it is indeed all alpha and/or underscores */
while (*++str != '\0') { while (*++str != '\0') {
if ((!isalpha((unsigned char)*str)) && (*str != '_')) { if ((!isalnum((unsigned char)*str))
&& (*str != '_')) {
return false; return false;
} }
} }