authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-12-06 21:41:38-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-12-06 21:41:38-05:00
log37fbf01755ad8a87e9ffa5b2cd6592b523da0d8e
treee9f7a871e9d65a21ee0875e8d8d4fcd8ff418aca
parent18b8a625f55f1c9cd325ec1ffb8d6d666c440b86

awkward void union field syntax no longer needed


1 files changed, 58 insertions(+), 58 deletions(-)

src-self-hosted/main.zig+58-58
...@@ -19,46 +19,46 @@ const Token = struct {...@@ -19,46 +19,46 @@ const Token = struct {
19 };19 };
2020
21 const keywords = []KeywordId {21 const keywords = []KeywordId {
22 KeywordId{.bytes="align", .id = Id {.Keyword_align = {}}},22 KeywordId{.bytes="align", .id = Id.Keyword_align},
23 KeywordId{.bytes="and", .id = Id {.Keyword_and = {}}},23 KeywordId{.bytes="and", .id = Id.Keyword_and},
24 KeywordId{.bytes="asm", .id = Id {.Keyword_asm = {}}},24 KeywordId{.bytes="asm", .id = Id.Keyword_asm},
25 KeywordId{.bytes="break", .id = Id {.Keyword_break = {}}},25 KeywordId{.bytes="break", .id = Id.Keyword_break},
26 KeywordId{.bytes="coldcc", .id = Id {.Keyword_coldcc = {}}},26 KeywordId{.bytes="coldcc", .id = Id.Keyword_coldcc},
27 KeywordId{.bytes="comptime", .id = Id {.Keyword_comptime = {}}},27 KeywordId{.bytes="comptime", .id = Id.Keyword_comptime},
28 KeywordId{.bytes="const", .id = Id {.Keyword_const = {}}},28 KeywordId{.bytes="const", .id = Id.Keyword_const},
29 KeywordId{.bytes="continue", .id = Id {.Keyword_continue = {}}},29 KeywordId{.bytes="continue", .id = Id.Keyword_continue},
30 KeywordId{.bytes="defer", .id = Id {.Keyword_defer = {}}},30 KeywordId{.bytes="defer", .id = Id.Keyword_defer},
31 KeywordId{.bytes="else", .id = Id {.Keyword_else = {}}},31 KeywordId{.bytes="else", .id = Id.Keyword_else},
32 KeywordId{.bytes="enum", .id = Id {.Keyword_enum = {}}},32 KeywordId{.bytes="enum", .id = Id.Keyword_enum},
33 KeywordId{.bytes="error", .id = Id {.Keyword_error = {}}},33 KeywordId{.bytes="error", .id = Id.Keyword_error},
34 KeywordId{.bytes="export", .id = Id {.Keyword_export = {}}},34 KeywordId{.bytes="export", .id = Id.Keyword_export},
35 KeywordId{.bytes="extern", .id = Id {.Keyword_extern = {}}},35 KeywordId{.bytes="extern", .id = Id.Keyword_extern},
36 KeywordId{.bytes="false", .id = Id {.Keyword_false = {}}},36 KeywordId{.bytes="false", .id = Id.Keyword_false},
37 KeywordId{.bytes="fn", .id = Id {.Keyword_fn = {}}},37 KeywordId{.bytes="fn", .id = Id.Keyword_fn},
38 KeywordId{.bytes="for", .id = Id {.Keyword_for = {}}},38 KeywordId{.bytes="for", .id = Id.Keyword_for},
39 KeywordId{.bytes="goto", .id = Id {.Keyword_goto = {}}},39 KeywordId{.bytes="goto", .id = Id.Keyword_goto},
40 KeywordId{.bytes="if", .id = Id {.Keyword_if = {}}},40 KeywordId{.bytes="if", .id = Id.Keyword_if},
41 KeywordId{.bytes="inline", .id = Id {.Keyword_inline = {}}},41 KeywordId{.bytes="inline", .id = Id.Keyword_inline},
42 KeywordId{.bytes="nakedcc", .id = Id {.Keyword_nakedcc = {}}},42 KeywordId{.bytes="nakedcc", .id = Id.Keyword_nakedcc},
43 KeywordId{.bytes="noalias", .id = Id {.Keyword_noalias = {}}},43 KeywordId{.bytes="noalias", .id = Id.Keyword_noalias},
44 KeywordId{.bytes="null", .id = Id {.Keyword_null = {}}},44 KeywordId{.bytes="null", .id = Id.Keyword_null},
45 KeywordId{.bytes="or", .id = Id {.Keyword_or = {}}},45 KeywordId{.bytes="or", .id = Id.Keyword_or},
46 KeywordId{.bytes="packed", .id = Id {.Keyword_packed = {}}},46 KeywordId{.bytes="packed", .id = Id.Keyword_packed},
47 KeywordId{.bytes="pub", .id = Id {.Keyword_pub = {}}},47 KeywordId{.bytes="pub", .id = Id.Keyword_pub},
48 KeywordId{.bytes="return", .id = Id {.Keyword_return = {}}},48 KeywordId{.bytes="return", .id = Id.Keyword_return},
49 KeywordId{.bytes="stdcallcc", .id = Id {.Keyword_stdcallcc = {}}},49 KeywordId{.bytes="stdcallcc", .id = Id.Keyword_stdcallcc},
50 KeywordId{.bytes="struct", .id = Id {.Keyword_struct = {}}},50 KeywordId{.bytes="struct", .id = Id.Keyword_struct},
51 KeywordId{.bytes="switch", .id = Id {.Keyword_switch = {}}},51 KeywordId{.bytes="switch", .id = Id.Keyword_switch},
52 KeywordId{.bytes="test", .id = Id {.Keyword_test = {}}},52 KeywordId{.bytes="test", .id = Id.Keyword_test},
53 KeywordId{.bytes="this", .id = Id {.Keyword_this = {}}},53 KeywordId{.bytes="this", .id = Id.Keyword_this},
54 KeywordId{.bytes="true", .id = Id {.Keyword_true = {}}},54 KeywordId{.bytes="true", .id = Id.Keyword_true},
55 KeywordId{.bytes="undefined", .id = Id {.Keyword_undefined = {}}},55 KeywordId{.bytes="undefined", .id = Id.Keyword_undefined},
56 KeywordId{.bytes="union", .id = Id {.Keyword_union = {}}},56 KeywordId{.bytes="union", .id = Id.Keyword_union},
57 KeywordId{.bytes="unreachable", .id = Id {.Keyword_unreachable = {}}},57 KeywordId{.bytes="unreachable", .id = Id.Keyword_unreachable},
58 KeywordId{.bytes="use", .id = Id {.Keyword_use = {}}},58 KeywordId{.bytes="use", .id = Id.Keyword_use},
59 KeywordId{.bytes="var", .id = Id {.Keyword_var = {}}},59 KeywordId{.bytes="var", .id = Id.Keyword_var},
60 KeywordId{.bytes="volatile", .id = Id {.Keyword_volatile = {}}},60 KeywordId{.bytes="volatile", .id = Id.Keyword_volatile},
61 KeywordId{.bytes="while", .id = Id {.Keyword_while = {}}},61 KeywordId{.bytes="while", .id = Id.Keyword_while},
62 };62 };
6363
64 fn getKeyword(bytes: []const u8) -> ?Id {64 fn getKeyword(bytes: []const u8) -> ?Id {
...@@ -159,7 +159,7 @@ const Tokenizer = struct {...@@ -159,7 +159,7 @@ const Tokenizer = struct {
159 pub fn next(self: &Tokenizer) -> Token {159 pub fn next(self: &Tokenizer) -> Token {
160 var state = State.Start;160 var state = State.Start;
161 var result = Token {161 var result = Token {
162 .id = Token.Id { .Eof = {} },162 .id = Token.Id.Eof,
163 .start = self.index,163 .start = self.index,
164 .end = undefined,164 .end = undefined,
165 };165 };
...@@ -172,7 +172,7 @@ const Tokenizer = struct {...@@ -172,7 +172,7 @@ const Tokenizer = struct {
172 },172 },
173 'c' => {173 'c' => {
174 state = State.C;174 state = State.C;
175 result.id = Token.Id { .Identifier = {} };175 result.id = Token.Id.Identifier;
176 },176 },
177 '"' => {177 '"' => {
178 state = State.StringLiteral;178 state = State.StringLiteral;
...@@ -180,49 +180,49 @@ const Tokenizer = struct {...@@ -180,49 +180,49 @@ const Tokenizer = struct {
180 },180 },
181 'a'...'b', 'd'...'z', 'A'...'Z', '_' => {181 'a'...'b', 'd'...'z', 'A'...'Z', '_' => {
182 state = State.Identifier;182 state = State.Identifier;
183 result.id = Token.Id { .Identifier = {} };183 result.id = Token.Id.Identifier;
184 },184 },
185 '@' => {185 '@' => {
186 state = State.Builtin;186 state = State.Builtin;
187 result.id = Token.Id { .Builtin = {} };187 result.id = Token.Id.Builtin;
188 },188 },
189 '=' => {189 '=' => {
190 result.id = Token.Id { .Equal = {} };190 result.id = Token.Id.Equal;
191 self.index += 1;191 self.index += 1;
192 break;192 break;
193 },193 },
194 '(' => {194 '(' => {
195 result.id = Token.Id { .LParen = {} };195 result.id = Token.Id.LParen;
196 self.index += 1;196 self.index += 1;
197 break;197 break;
198 },198 },
199 ')' => {199 ')' => {
200 result.id = Token.Id { .RParen = {} };200 result.id = Token.Id.RParen;
201 self.index += 1;201 self.index += 1;
202 break;202 break;
203 },203 },
204 ';' => {204 ';' => {
205 result.id = Token.Id { .Semicolon = {} };205 result.id = Token.Id.Semicolon;
206 self.index += 1;206 self.index += 1;
207 break;207 break;
208 },208 },
209 '%' => {209 '%' => {
210 result.id = Token.Id { .Percent = {} };210 result.id = Token.Id.Percent;
211 self.index += 1;211 self.index += 1;
212 break;212 break;
213 },213 },
214 '{' => {214 '{' => {
215 result.id = Token.Id { .LBrace = {} };215 result.id = Token.Id.LBrace;
216 self.index += 1;216 self.index += 1;
217 break;217 break;
218 },218 },
219 '}' => {219 '}' => {
220 result.id = Token.Id { .RBrace = {} };220 result.id = Token.Id.RBrace;
221 self.index += 1;221 self.index += 1;
222 break;222 break;
223 },223 },
224 '.' => {224 '.' => {
225 result.id = Token.Id { .Period = {} };225 result.id = Token.Id.Period;
226 self.index += 1;226 self.index += 1;
227 break;227 break;
228 },228 },
...@@ -230,7 +230,7 @@ const Tokenizer = struct {...@@ -230,7 +230,7 @@ const Tokenizer = struct {
230 state = State.Minus;230 state = State.Minus;
231 },231 },
232 else => {232 else => {
233 result.id = Token.Id { .Invalid = {} };233 result.id = Token.Id.Invalid;
234 self.index += 1;234 self.index += 1;
235 break;235 break;
236 },236 },
...@@ -280,12 +280,12 @@ const Tokenizer = struct {...@@ -280,12 +280,12 @@ const Tokenizer = struct {
280280
281 State.Minus => switch (c) {281 State.Minus => switch (c) {
282 '>' => {282 '>' => {
283 result.id = Token.Id { .Arrow = {} };283 result.id = Token.Id.Arrow;
284 self.index += 1;284 self.index += 1;
285 break;285 break;
286 },286 },
287 else => {287 else => {
288 result.id = Token.Id { .Minus = {} };288 result.id = Token.Id.Minus;
289 break;289 break;
290 },290 },
291 },291 },
...@@ -334,12 +334,12 @@ const Parser = struct {...@@ -334,12 +334,12 @@ const Parser = struct {
334 switch (next_token.id) {334 switch (next_token.id) {
335 Token.Id.Keyword_fn => {335 Token.Id.Keyword_fn => {
336 const fn_name = self.tokenizer.next();336 const fn_name = self.tokenizer.next();
337 if (@TagType(Token.Id)(fn_name.id) != Token.Id.Identifier) {337 if (fn_name.id != Token.Id.Identifier) {
338 @panic("parse error");338 @panic("parse error");
339 }339 }
340340
341 const lparen = self.tokenizer.next();341 const lparen = self.tokenizer.next();
342 if (@TagType(Token.Id)(lparen.id) != Token.Id.LParen) {342 if (lparen.id != Token.Id.LParen) {
343 @panic("parse error");343 @panic("parse error");
344 }344 }
345 },345 },
...@@ -391,7 +391,7 @@ pub fn main2() -> %void {...@@ -391,7 +391,7 @@ pub fn main2() -> %void {
391 while (true) {391 while (true) {
392 const token = tokenizer.next();392 const token = tokenizer.next();
393 tokenizer.dump(token);393 tokenizer.dump(token);
394 if (@TagType(Token.Id)(token.id) == Token.Id.Eof) {394 if (token.id == Token.Id.Eof) {
395 break;395 break;
396 }396 }
397 }397 }