| 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 | 143 | |
| 144 | 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 | 149 | ## Operator Precedence |
| ... | ... | @@ -216,10 +216,23 @@ A slice can be obtained with the slicing syntax: `array[start...end]` |
| 216 | 216 | |
| 217 | 217 | Example: `"aoeu"[0...2]` has type `[]u8`. |
| 218 | 218 | |
| 219 | ### Struct Types | |
| 219 | ### Struct Type | |
| 220 | 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 | 236 | TODO |
| 224 | 237 | |
| 225 | 238 | ### Unreachable Type |
doc/vim/syntax/zig.vim+1-1| ... | ... | @@ -13,7 +13,7 @@ syn keyword zigStatement goto break return continue asm |
| 13 | 13 | syn keyword zigConditional if else switch |
| 14 | 14 | syn keyword zigRepeat while for |
| 15 | 15 | |
| 16 | syn keyword zigConstant null | |
| 16 | syn keyword zigConstant null undefined | |
| 17 | 17 | syn keyword zigKeyword fn import |
| 18 | 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 | 245 | t->cur_tok->id = TokenIdKeywordNoAlias; |
| 246 | 246 | } else if (mem_eql_str(token_mem, token_len, "switch")) { |
| 247 | 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 | 252 | t->cur_tok = nullptr; |
| ... | ... | @@ -1043,6 +1045,7 @@ const char * token_name(TokenId id) { |
| 1043 | 1045 | case TokenIdKeywordNull: return "null"; |
| 1044 | 1046 | case TokenIdKeywordNoAlias: return "noalias"; |
| 1045 | 1047 | case TokenIdKeywordSwitch: return "switch"; |
| 1048 | case TokenIdKeywordUndefined: return "undefined"; | |
| 1046 | 1049 | case TokenIdLParen: return "("; |
| 1047 | 1050 | case TokenIdRParen: return ")"; |
| 1048 | 1051 | case TokenIdComma: return ","; |
src/tokenizer.hpp+1| ... | ... | @@ -37,6 +37,7 @@ enum TokenId { |
| 37 | 37 | TokenIdKeywordNull, |
| 38 | 38 | TokenIdKeywordNoAlias, |
| 39 | 39 | TokenIdKeywordSwitch, |
| 40 | TokenIdKeywordUndefined, | |
| 40 | 41 | TokenIdLParen, |
| 41 | 42 | TokenIdRParen, |
| 42 | 43 | TokenIdComma, |