New tokenizer tokens for variable binding

This commit is contained in:
VegOwOtenks 2024-10-08 12:29:43 +02:00
parent 22394b2d6e
commit 16d77f494b
2 changed files with 19 additions and 4 deletions

View file

@ -96,7 +96,7 @@ static Token _Tokenizer_IdentifierToken(StringView* source)
static Token _Tokenizer_SimpleToken(StringView* source) static Token _Tokenizer_SimpleToken(StringView* source)
{ {
const char* literal_table[] = { "{", "}", "&", ":", "+", "->", "-", "*", "/", "|", "==", "!=", "<", "<=", ">", ">=", ",", ";" }; const char* literal_table[] = { "{", "}", "&", ":", "+", "->", "-", "*", "/", "|", "==", "!=", "<", "<=", ">", ">=", ",", ";", "bind", "as", "(", ")" };
const enum TokenType type_table[] = { const enum TokenType type_table[] = {
TOKENTYPE_LEFT_BRACE, TOKENTYPE_LEFT_BRACE,
TOKENTYPE_RIGHT_BRACE, TOKENTYPE_RIGHT_BRACE,
@ -116,6 +116,10 @@ static Token _Tokenizer_SimpleToken(StringView* source)
TOKENTYPE_GREATEREQUAL, TOKENTYPE_GREATEREQUAL,
TOKENTYPE_COMMA, TOKENTYPE_COMMA,
TOKENTYPE_SEMICOLON, TOKENTYPE_SEMICOLON,
TOKENTYPE_BIND,
TOKENTYPE_AS,
TOKENTYPE_LEFT_PAREN,
TOKENTYPE_RIGHT_PAREN,
}; };
for (size_t i = 0; i < sizeof(literal_table) / sizeof(literal_table[0]); i++) { for (size_t i = 0; i < sizeof(literal_table) / sizeof(literal_table[0]); i++) {
@ -208,7 +212,14 @@ const char* TokenType_ToString(enum TokenType type)
return "TOKENTYPE_COMMA"; return "TOKENTYPE_COMMA";
case TOKENTYPE_SEMICOLON: case TOKENTYPE_SEMICOLON:
return "TOKENTYPE_SEMICOLON"; return "TOKENTYPE_SEMICOLON";
case TOKENTYPE_BIND:
return "BIND";
case TOKENTYPE_AS:
return "AS";
case TOKENTYPE_LEFT_PAREN:
return "LEFT_PAREN";
case TOKENTYPE_RIGHT_PAREN:
return "RIGHT_PAREN";
} }
return "INVALID"; return "INVALID";

View file

@ -27,6 +27,10 @@ enum TokenType {
TOKENTYPE_GREATERTHAN, TOKENTYPE_GREATERTHAN,
TOKENTYPE_GREATEREQUAL, TOKENTYPE_GREATEREQUAL,
TOKENTYPE_COMMA, TOKENTYPE_COMMA,
TOKENTYPE_BIND,
TOKENTYPE_AS,
TOKENTYPE_LEFT_PAREN,
TOKENTYPE_RIGHT_PAREN,
TOKENTYPE_ERROR, TOKENTYPE_ERROR,
}; };