numeric literal fix

This commit is contained in:
MihailRis
2024-05-14 01:37:43 +03:00
parent be0c8590bf
commit ea2b77b323
3 changed files with 14 additions and 5 deletions
+2 -2
View File
@@ -31,11 +31,11 @@ inline bool is_whitespace(int c) {
}
inline bool is_identifier_start(int c) {
return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || c == '_' || c == '-' || c == '.';
return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || c == '_' || c == '.';
}
inline bool is_identifier_part(int c) {
return is_identifier_start(c) || is_digit(c);
return is_identifier_start(c) || is_digit(c) || c == '-';
}
inline int hexchar2int(int c) {
+6 -2
View File
@@ -13,7 +13,7 @@ inline bool is_cmd_identifier_part(char c, bool allowColon) {
}
inline bool is_cmd_identifier_start(char c) {
return is_identifier_start(c) || c == '.' || c == '$';
return (is_identifier_start(c) || c == '.' || c == '$');
}
class CommandParser : BasicParser {
@@ -75,9 +75,13 @@ public:
nextChar();
return parseString(c);
}
if (c == '+' || c == '-' || is_digit(c)) {
if (c == '+' || c == '-') {
nextChar();
return parseNumber(c == '-' ? -1 : 1);
}
if (is_digit(c)) {
return parseNumber(1);
}
throw error("invalid character '"+std::string({c})+"'");
}