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[] = { static const unsigned int symbols[] = {
SYM_BANG,
SYM_PLUS, SYM_PLUS,
SYM_HYPHEN, SYM_HYPHEN,
SYM_FORWARD_SLASH, 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 const size_t nr_operators = sizeof operators / sizeof operators[0];
static struct lex_token_def symbols[] = { 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_PLUS, "+", LEX_TOKEN_UNARY_ARITHMETIC),
SYMBOL_DEF(SYM_HYPHEN, "-", LEX_TOKEN_UNARY_ARITHMETIC), SYMBOL_DEF(SYM_HYPHEN, "-", LEX_TOKEN_UNARY_ARITHMETIC),
SYMBOL_DEF(SYM_FORWARD_SLASH, "/", 0), 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_SQUOTE);
ENUM_STR(SYM_DQUOTE); ENUM_STR(SYM_DQUOTE);
ENUM_STR(SYM_HASH); ENUM_STR(SYM_HASH);
ENUM_STR(SYM_COLON_COLON);
ENUM_STR(SYM_SEMICOLON); ENUM_STR(SYM_SEMICOLON);
ENUM_STR(SYM_COMMA); ENUM_STR(SYM_COMMA);
ENUM_STR(SYM_DOLLAR); ENUM_STR(SYM_DOLLAR);
ENUM_STR(SYM_DOLLAR_LEFT_PAREN); 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_PIPE);
ENUM_STR(SYM_AT); ENUM_STR(SYM_AT);
ENUM_STR(SYM_AT_LEFT_PAREN);
ENUM_STR(SYM_AT_LEFT_BRACE); ENUM_STR(SYM_AT_LEFT_BRACE);
ENUM_STR(SYM_LEFT_BRACE); ENUM_STR(SYM_LEFT_BRACE);
ENUM_STR(SYM_RIGHT_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_EQUAL);
ENUM_STR(SYM_PLUS_EQUAL); ENUM_STR(SYM_PLUS_EQUAL);
ENUM_STR(SYM_HYPHEN_EQUAL); ENUM_STR(SYM_HYPHEN_EQUAL);
ENUM_STR(SYM_FORWARD_SLASH_EQUAL);
ENUM_STR(SYM_ASTERISK_EQUAL); ENUM_STR(SYM_ASTERISK_EQUAL);
ENUM_STR(SYM_FORWARD_SLASH_EQUAL);
ENUM_STR(SYM_PERCENT_EQUAL); ENUM_STR(SYM_PERCENT_EQUAL);
ENUM_STR(SYM_QUESTION_DOT);
ENUM_STR(SYM_QUESTION_LEFT_BRACKET);
default: default:
return "<unknown>"; return "<unknown>";
} }
+7
View File
@@ -77,6 +77,7 @@ enum token_operator {
enum token_symbol { enum token_symbol {
SYM_NONE = 0, SYM_NONE = 0,
__SYM_INDEX_BASE = 400, __SYM_INDEX_BASE = 400,
SYM_BANG,
SYM_PLUS, SYM_PLUS,
SYM_HYPHEN, SYM_HYPHEN,
SYM_FORWARD_SLASH, SYM_FORWARD_SLASH,
@@ -86,13 +87,17 @@ enum token_symbol {
SYM_SQUOTE, SYM_SQUOTE,
SYM_DQUOTE, SYM_DQUOTE,
SYM_HASH, SYM_HASH,
SYM_COLON_COLON,
SYM_SEMICOLON, SYM_SEMICOLON,
SYM_COMMA, SYM_COMMA,
SYM_DOLLAR, SYM_DOLLAR,
SYM_DOLLAR_LEFT_PAREN, SYM_DOLLAR_LEFT_PAREN,
SYM_DOLLAR_LEFT_BRACE, SYM_DOLLAR_LEFT_BRACE,
SYM_DOT,
SYM_DOT_DOT,
SYM_PIPE, SYM_PIPE,
SYM_AT, SYM_AT,
SYM_AT_LEFT_PAREN,
SYM_AT_LEFT_BRACE, SYM_AT_LEFT_BRACE,
SYM_LEFT_BRACE, SYM_LEFT_BRACE,
SYM_RIGHT_BRACE, SYM_RIGHT_BRACE,
@@ -106,6 +111,8 @@ enum token_symbol {
SYM_ASTERISK_EQUAL, SYM_ASTERISK_EQUAL,
SYM_FORWARD_SLASH_EQUAL, SYM_FORWARD_SLASH_EQUAL,
SYM_PERCENT_EQUAL, SYM_PERCENT_EQUAL,
SYM_QUESTION_DOT,
SYM_QUESTION_LEFT_BRACKET,
__SYM_INDEX_LIMIT, __SYM_INDEX_LIMIT,
}; };