parse: lex: add a range of new symbol tokens

This commit is contained in:
2026-05-12 22:47:16 +01:00
parent dee4e5dbf7
commit 721e0f851a
4 changed files with 17 additions and 1 deletions
+1
View File
@@ -184,6 +184,7 @@ static const unsigned int operators[] = {
};
static const unsigned int symbols[] = {
SYM_BANG,
SYM_PLUS,
SYM_HYPHEN,
SYM_FORWARD_SLASH,
+1
View File
@@ -68,6 +68,7 @@ static struct lex_token_def operators[] = {
static const size_t nr_operators = sizeof operators / sizeof operators[0];
static struct lex_token_def symbols[] = {
SYMBOL_DEF(SYM_BANG, "!", LEX_TOKEN_UNARY_ARITHMETIC),
SYMBOL_DEF(SYM_PLUS, "+", LEX_TOKEN_UNARY_ARITHMETIC),
SYMBOL_DEF(SYM_HYPHEN, "-", LEX_TOKEN_UNARY_ARITHMETIC),
SYMBOL_DEF(SYM_FORWARD_SLASH, "/", 0),
+8 -1
View File
@@ -141,12 +141,17 @@ const char *token_symbol_to_string(enum token_symbol sym)
ENUM_STR(SYM_SQUOTE);
ENUM_STR(SYM_DQUOTE);
ENUM_STR(SYM_HASH);
ENUM_STR(SYM_COLON_COLON);
ENUM_STR(SYM_SEMICOLON);
ENUM_STR(SYM_COMMA);
ENUM_STR(SYM_DOLLAR);
ENUM_STR(SYM_DOLLAR_LEFT_PAREN);
ENUM_STR(SYM_DOLLAR_LEFT_BRACE);
ENUM_STR(SYM_DOT);
ENUM_STR(SYM_DOT_DOT);
ENUM_STR(SYM_PIPE);
ENUM_STR(SYM_AT);
ENUM_STR(SYM_AT_LEFT_PAREN);
ENUM_STR(SYM_AT_LEFT_BRACE);
ENUM_STR(SYM_LEFT_BRACE);
ENUM_STR(SYM_RIGHT_BRACE);
@@ -157,9 +162,11 @@ const char *token_symbol_to_string(enum token_symbol sym)
ENUM_STR(SYM_EQUAL);
ENUM_STR(SYM_PLUS_EQUAL);
ENUM_STR(SYM_HYPHEN_EQUAL);
ENUM_STR(SYM_FORWARD_SLASH_EQUAL);
ENUM_STR(SYM_ASTERISK_EQUAL);
ENUM_STR(SYM_FORWARD_SLASH_EQUAL);
ENUM_STR(SYM_PERCENT_EQUAL);
ENUM_STR(SYM_QUESTION_DOT);
ENUM_STR(SYM_QUESTION_LEFT_BRACKET);
default:
return "<unknown>";
}
+7
View File
@@ -77,6 +77,7 @@ enum token_operator {
enum token_symbol {
SYM_NONE = 0,
__SYM_INDEX_BASE = 400,
SYM_BANG,
SYM_PLUS,
SYM_HYPHEN,
SYM_FORWARD_SLASH,
@@ -86,13 +87,17 @@ enum token_symbol {
SYM_SQUOTE,
SYM_DQUOTE,
SYM_HASH,
SYM_COLON_COLON,
SYM_SEMICOLON,
SYM_COMMA,
SYM_DOLLAR,
SYM_DOLLAR_LEFT_PAREN,
SYM_DOLLAR_LEFT_BRACE,
SYM_DOT,
SYM_DOT_DOT,
SYM_PIPE,
SYM_AT,
SYM_AT_LEFT_PAREN,
SYM_AT_LEFT_BRACE,
SYM_LEFT_BRACE,
SYM_RIGHT_BRACE,
@@ -106,6 +111,8 @@ enum token_symbol {
SYM_ASTERISK_EQUAL,
SYM_FORWARD_SLASH_EQUAL,
SYM_PERCENT_EQUAL,
SYM_QUESTION_DOT,
SYM_QUESTION_LEFT_BRACKET,
__SYM_INDEX_LIMIT,
};