add undefined reserved word

This commit is contained in:
Andrew Kelley 2016-01-22 16:05:29 -07:00
parent b61406b607
commit 72fa03bada
4 changed files with 21 additions and 4 deletions

View File

@ -143,7 +143,7 @@ GotoExpression: "goto" "Symbol"
GroupedExpression : "(" Expression ")"
KeywordLiteral : "true" | "false" | "null" | "break" | "continue"
KeywordLiteral : "true" | "false" | "null" | "break" | "continue" | "undefined"
```
## Operator Precedence
@ -216,10 +216,23 @@ A slice can be obtained with the slicing syntax: `array[start...end]`
Example: `"aoeu"[0...2]` has type `[]u8`.
### Struct Types
### Struct Type
TODO
### Pointer Types
### Enum Type
TODO
### Maybe Type
TODO
### Error Type
TODO
### Pointer Type
TODO
### Unreachable Type

View File

@ -13,7 +13,7 @@ syn keyword zigStatement goto break return continue asm
syn keyword zigConditional if else switch
syn keyword zigRepeat while for
syn keyword zigConstant null
syn keyword zigConstant null undefined
syn keyword zigKeyword fn import
syn keyword zigType bool i8 u8 i16 u16 i32 u32 i64 u64 isize usize f32 f64 f128 void unreachable type

View File

@ -245,6 +245,8 @@ static void end_token(Tokenize *t) {
t->cur_tok->id = TokenIdKeywordNoAlias;
} else if (mem_eql_str(token_mem, token_len, "switch")) {
t->cur_tok->id = TokenIdKeywordSwitch;
} else if (mem_eql_str(token_mem, token_len, "undefined")) {
t->cur_tok->id = TokenIdKeywordUndefined;
}
t->cur_tok = nullptr;
@ -1043,6 +1045,7 @@ const char * token_name(TokenId id) {
case TokenIdKeywordNull: return "null";
case TokenIdKeywordNoAlias: return "noalias";
case TokenIdKeywordSwitch: return "switch";
case TokenIdKeywordUndefined: return "undefined";
case TokenIdLParen: return "(";
case TokenIdRParen: return ")";
case TokenIdComma: return ",";

View File

@ -37,6 +37,7 @@ enum TokenId {
TokenIdKeywordNull,
TokenIdKeywordNoAlias,
TokenIdKeywordSwitch,
TokenIdKeywordUndefined,
TokenIdLParen,
TokenIdRParen,
TokenIdComma,