Compare commits

..

2 commits

Author SHA1 Message Date
af2574b769 Updated roadmap 2024-10-08 12:30:13 +02:00
16d77f494b New tokenizer tokens for variable binding 2024-10-08 12:29:43 +02:00
3 changed files with 23 additions and 6 deletions

View file

@ -3,7 +3,6 @@
- Listen
- Müllabfuhr
- Innere Funktionsdefinition
- Semikolon am Ende der Datei
- at Annotations
- Datentypen
- Kommentare
@ -14,4 +13,7 @@
## builtins
- I/O (print, readline, read\*, write\*)
- always, never, otherwise
- always, never, otherwise
## done
- Semikolon am Ende der Datei

View file

@ -96,7 +96,7 @@ static Token _Tokenizer_IdentifierToken(StringView* source)
static Token _Tokenizer_SimpleToken(StringView* source)
{
const char* literal_table[] = { "{", "}", "&", ":", "+", "->", "-", "*", "/", "|", "==", "!=", "<", "<=", ">", ">=", ",", ";" };
const char* literal_table[] = { "{", "}", "&", ":", "+", "->", "-", "*", "/", "|", "==", "!=", "<", "<=", ">", ">=", ",", ";", "bind", "as", "(", ")" };
const enum TokenType type_table[] = {
TOKENTYPE_LEFT_BRACE,
TOKENTYPE_RIGHT_BRACE,
@ -116,6 +116,10 @@ static Token _Tokenizer_SimpleToken(StringView* source)
TOKENTYPE_GREATEREQUAL,
TOKENTYPE_COMMA,
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++) {
@ -208,8 +212,15 @@ const char* TokenType_ToString(enum TokenType type)
return "TOKENTYPE_COMMA";
case 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_GREATEREQUAL,
TOKENTYPE_COMMA,
TOKENTYPE_BIND,
TOKENTYPE_AS,
TOKENTYPE_LEFT_PAREN,
TOKENTYPE_RIGHT_PAREN,
TOKENTYPE_ERROR,
};