Compare commits
2 commits
22394b2d6e
...
af2574b769
Author | SHA1 | Date | |
---|---|---|---|
af2574b769 | |||
16d77f494b |
3 changed files with 23 additions and 6 deletions
|
@ -3,7 +3,6 @@
|
||||||
- Listen
|
- Listen
|
||||||
- Müllabfuhr
|
- Müllabfuhr
|
||||||
- Innere Funktionsdefinition
|
- Innere Funktionsdefinition
|
||||||
- Semikolon am Ende der Datei
|
|
||||||
- at Annotations
|
- at Annotations
|
||||||
- Datentypen
|
- Datentypen
|
||||||
- Kommentare
|
- Kommentare
|
||||||
|
@ -14,4 +13,7 @@
|
||||||
|
|
||||||
## builtins
|
## builtins
|
||||||
- I/O (print, readline, read\*, write\*)
|
- I/O (print, readline, read\*, write\*)
|
||||||
- always, never, otherwise
|
- always, never, otherwise
|
||||||
|
|
||||||
|
## done
|
||||||
|
- Semikolon am Ende der Datei
|
|
@ -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,8 +212,15 @@ 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";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue