| author | |
| committer | |
| log | 72fa03badad2e5837f639359a63a75abaa99a479 |
| tree | 81659e3c9f4e2b22e5d39df221ebebc5553a1285 |
| parent | b61406b60738555cd267542f446a5f4cdf50e0b2 |
4 files changed, 21 insertions(+), 4 deletions(-)
doc/langref.md+16-3| ... | @@ -143,7 +143,7 @@ GotoExpression: "goto" "Symbol" | ... | @@ -143,7 +143,7 @@ GotoExpression: "goto" "Symbol" |
| 143 | 143 | ||
| 144 | GroupedExpression : "(" Expression ")" | 144 | GroupedExpression : "(" Expression ")" |
| 145 | 145 | ||
| 146 | KeywordLiteral : "true" | "false" | "null" | "break" | "continue" | 146 | KeywordLiteral : "true" | "false" | "null" | "break" | "continue" | "undefined" |
| 147 | ``` | 147 | ``` |
| 148 | 148 | ||
| 149 | ## Operator Precedence | 149 | ## Operator Precedence |
| ... | @@ -216,10 +216,23 @@ A slice can be obtained with the slicing syntax: `array[start...end]` | ... | @@ -216,10 +216,23 @@ A slice can be obtained with the slicing syntax: `array[start...end]` |
| 216 | 216 | ||
| 217 | Example: `"aoeu"[0...2]` has type `[]u8`. | 217 | Example: `"aoeu"[0...2]` has type `[]u8`. |
| 218 | 218 | ||
| 219 | ### Struct Types | 219 | ### Struct Type |
| 220 | TODO | 220 | TODO |
| 221 | 221 | ||
| 222 | ### Pointer Types | 222 | ### Enum Type |
| 223 | |||
| 224 | TODO | ||
| 225 | |||
| 226 | ### Maybe Type | ||
| 227 | |||
| 228 | TODO | ||
| 229 | |||
| 230 | ### Error Type | ||
| 231 | |||
| 232 | TODO | ||
| 233 | |||
| 234 | ### Pointer Type | ||
| 235 | |||
| 223 | TODO | 236 | TODO |
| 224 | 237 | ||
| 225 | ### Unreachable Type | 238 | ### Unreachable Type |
doc/vim/syntax/zig.vim+1-1| ... | @@ -13,7 +13,7 @@ syn keyword zigStatement goto break return continue asm | ... | @@ -13,7 +13,7 @@ syn keyword zigStatement goto break return continue asm |
| 13 | syn keyword zigConditional if else switch | 13 | syn keyword zigConditional if else switch |
| 14 | syn keyword zigRepeat while for | 14 | syn keyword zigRepeat while for |
| 15 | 15 | ||
| 16 | syn keyword zigConstant null | 16 | syn keyword zigConstant null undefined |
| 17 | syn keyword zigKeyword fn import | 17 | syn keyword zigKeyword fn import |
| 18 | syn keyword zigType bool i8 u8 i16 u16 i32 u32 i64 u64 isize usize f32 f64 f128 void unreachable type | 18 | syn keyword zigType bool i8 u8 i16 u16 i32 u32 i64 u64 isize usize f32 f64 f128 void unreachable type |
| 19 | 19 |
src/tokenizer.cpp+3| ... | @@ -245,6 +245,8 @@ static void end_token(Tokenize *t) { | ... | @@ -245,6 +245,8 @@ static void end_token(Tokenize *t) { |
| 245 | t->cur_tok->id = TokenIdKeywordNoAlias; | 245 | t->cur_tok->id = TokenIdKeywordNoAlias; |
| 246 | } else if (mem_eql_str(token_mem, token_len, "switch")) { | 246 | } else if (mem_eql_str(token_mem, token_len, "switch")) { |
| 247 | t->cur_tok->id = TokenIdKeywordSwitch; | 247 | t->cur_tok->id = TokenIdKeywordSwitch; |
| 248 | } else if (mem_eql_str(token_mem, token_len, "undefined")) { | ||
| 249 | t->cur_tok->id = TokenIdKeywordUndefined; | ||
| 248 | } | 250 | } |
| 249 | 251 | ||
| 250 | t->cur_tok = nullptr; | 252 | t->cur_tok = nullptr; |
| ... | @@ -1043,6 +1045,7 @@ const char * token_name(TokenId id) { | ... | @@ -1043,6 +1045,7 @@ const char * token_name(TokenId id) { |
| 1043 | case TokenIdKeywordNull: return "null"; | 1045 | case TokenIdKeywordNull: return "null"; |
| 1044 | case TokenIdKeywordNoAlias: return "noalias"; | 1046 | case TokenIdKeywordNoAlias: return "noalias"; |
| 1045 | case TokenIdKeywordSwitch: return "switch"; | 1047 | case TokenIdKeywordSwitch: return "switch"; |
| 1048 | case TokenIdKeywordUndefined: return "undefined"; | ||
| 1046 | case TokenIdLParen: return "("; | 1049 | case TokenIdLParen: return "("; |
| 1047 | case TokenIdRParen: return ")"; | 1050 | case TokenIdRParen: return ")"; |
| 1048 | case TokenIdComma: return ","; | 1051 | case TokenIdComma: return ","; |
src/tokenizer.hpp+1| ... | @@ -37,6 +37,7 @@ enum TokenId { | ... | @@ -37,6 +37,7 @@ enum TokenId { |
| 37 | TokenIdKeywordNull, | 37 | TokenIdKeywordNull, |
| 38 | TokenIdKeywordNoAlias, | 38 | TokenIdKeywordNoAlias, |
| 39 | TokenIdKeywordSwitch, | 39 | TokenIdKeywordSwitch, |
| 40 | TokenIdKeywordUndefined, | ||
| 40 | TokenIdLParen, | 41 | TokenIdLParen, |
| 41 | TokenIdRParen, | 42 | TokenIdRParen, |
| 42 | TokenIdComma, | 43 | TokenIdComma, |