| ... | @@ -2005,9 +2005,12 @@ const Parser = struct { | ... | @@ -2005,9 +2005,12 @@ const Parser = struct { |
| 2005 | if (field_init != 0) { | 2005 | if (field_init != 0) { |
| 2006 | try p.scratch.append(p.gpa, field_init); | 2006 | try p.scratch.append(p.gpa, field_init); |
| 2007 | while (true) { | 2007 | while (true) { |
| 2008 | switch (p.token_tags[p.tok_i]) { | 2008 | switch (p.token_tags[p.tok_i]) { |
| 2009 | .comma => p.tok_i += 1, | 2009 | .comma => p.tok_i += 1, |
| 2010 | .r_brace => { p.tok_i += 1; break; }, | 2010 | .r_brace => { |
| | 2011 | p.tok_i += 1; |
| | 2012 | break; |
| | 2013 | }, |
| 2011 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), | 2014 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), |
| 2012 | // Likely just a missing comma; give error but continue parsing. | 2015 | // Likely just a missing comma; give error but continue parsing. |
| 2013 | else => try p.warnExpected(.comma), | 2016 | else => try p.warnExpected(.comma), |
| ... | @@ -2045,7 +2048,10 @@ const Parser = struct { | ... | @@ -2045,7 +2048,10 @@ const Parser = struct { |
| 2045 | try p.scratch.append(p.gpa, elem_init); | 2048 | try p.scratch.append(p.gpa, elem_init); |
| 2046 | switch (p.token_tags[p.tok_i]) { | 2049 | switch (p.token_tags[p.tok_i]) { |
| 2047 | .comma => p.tok_i += 1, | 2050 | .comma => p.tok_i += 1, |
| 2048 | .r_brace => { p.tok_i += 1; break; }, | 2051 | .r_brace => { |
| | 2052 | p.tok_i += 1; |
| | 2053 | break; |
| | 2054 | }, |
| 2049 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), | 2055 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), |
| 2050 | // Likely just a missing comma; give error but continue parsing. | 2056 | // Likely just a missing comma; give error but continue parsing. |
| 2051 | else => try p.warnExpected(.comma), | 2057 | else => try p.warnExpected(.comma), |
| ... | @@ -2121,7 +2127,10 @@ const Parser = struct { | ... | @@ -2121,7 +2127,10 @@ const Parser = struct { |
| 2121 | try p.scratch.append(p.gpa, param); | 2127 | try p.scratch.append(p.gpa, param); |
| 2122 | switch (p.token_tags[p.tok_i]) { | 2128 | switch (p.token_tags[p.tok_i]) { |
| 2123 | .comma => p.tok_i += 1, | 2129 | .comma => p.tok_i += 1, |
| 2124 | .r_paren => { p.tok_i += 1; break; }, | 2130 | .r_paren => { |
| | 2131 | p.tok_i += 1; |
| | 2132 | break; |
| | 2133 | }, |
| 2125 | .colon, .r_brace, .r_bracket => return p.failExpected(.r_paren), | 2134 | .colon, .r_brace, .r_bracket => return p.failExpected(.r_paren), |
| 2126 | // Likely just a missing comma; give error but continue parsing. | 2135 | // Likely just a missing comma; give error but continue parsing. |
| 2127 | else => try p.warnExpected(.comma), | 2136 | else => try p.warnExpected(.comma), |
| ... | @@ -2129,7 +2138,7 @@ const Parser = struct { | ... | @@ -2129,7 +2138,7 @@ const Parser = struct { |
| 2129 | } | 2138 | } |
| 2130 | const comma = (p.token_tags[p.tok_i - 2] == .comma); | 2139 | const comma = (p.token_tags[p.tok_i - 2] == .comma); |
| 2131 | const params = p.scratch.items[scratch_top..]; | 2140 | const params = p.scratch.items[scratch_top..]; |
| 2132 | switch(params.len) { | 2141 | switch (params.len) { |
| 2133 | 0 => return p.addNode(.{ | 2142 | 0 => return p.addNode(.{ |
| 2134 | .tag = if (comma) .async_call_one_comma else .async_call_one, | 2143 | .tag = if (comma) .async_call_one_comma else .async_call_one, |
| 2135 | .main_token = lparen, | 2144 | .main_token = lparen, |
| ... | @@ -2174,7 +2183,10 @@ const Parser = struct { | ... | @@ -2174,7 +2183,10 @@ const Parser = struct { |
| 2174 | try p.scratch.append(p.gpa, param); | 2183 | try p.scratch.append(p.gpa, param); |
| 2175 | switch (p.token_tags[p.tok_i]) { | 2184 | switch (p.token_tags[p.tok_i]) { |
| 2176 | .comma => p.tok_i += 1, | 2185 | .comma => p.tok_i += 1, |
| 2177 | .r_paren => { p.tok_i += 1; break; }, | 2186 | .r_paren => { |
| | 2187 | p.tok_i += 1; |
| | 2188 | break; |
| | 2189 | }, |
| 2178 | .colon, .r_brace, .r_bracket => return p.failExpected(.r_paren), | 2190 | .colon, .r_brace, .r_bracket => return p.failExpected(.r_paren), |
| 2179 | // Likely just a missing comma; give error but continue parsing. | 2191 | // Likely just a missing comma; give error but continue parsing. |
| 2180 | else => try p.warnExpected(.comma), | 2192 | else => try p.warnExpected(.comma), |
| ... | @@ -2182,7 +2194,7 @@ const Parser = struct { | ... | @@ -2182,7 +2194,7 @@ const Parser = struct { |
| 2182 | } | 2194 | } |
| 2183 | const comma = (p.token_tags[p.tok_i - 2] == .comma); | 2195 | const comma = (p.token_tags[p.tok_i - 2] == .comma); |
| 2184 | const params = p.scratch.items[scratch_top..]; | 2196 | const params = p.scratch.items[scratch_top..]; |
| 2185 | res = switch(params.len) { | 2197 | res = switch (params.len) { |
| 2186 | 0 => try p.addNode(.{ | 2198 | 0 => try p.addNode(.{ |
| 2187 | .tag = if (comma) .call_one_comma else .call_one, | 2199 | .tag = if (comma) .call_one_comma else .call_one, |
| 2188 | .main_token = lparen, | 2200 | .main_token = lparen, |
| ... | @@ -2448,7 +2460,10 @@ const Parser = struct { | ... | @@ -2448,7 +2460,10 @@ const Parser = struct { |
| 2448 | while (true) { | 2460 | while (true) { |
| 2449 | switch (p.token_tags[p.tok_i]) { | 2461 | switch (p.token_tags[p.tok_i]) { |
| 2450 | .comma => p.tok_i += 1, | 2462 | .comma => p.tok_i += 1, |
| 2451 | .r_brace => { p.tok_i += 1; break; }, | 2463 | .r_brace => { |
| | 2464 | p.tok_i += 1; |
| | 2465 | break; |
| | 2466 | }, |
| 2452 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), | 2467 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), |
| 2453 | // Likely just a missing comma; give error but continue parsing. | 2468 | // Likely just a missing comma; give error but continue parsing. |
| 2454 | else => try p.warnExpected(.comma), | 2469 | else => try p.warnExpected(.comma), |
| ... | @@ -2497,7 +2512,10 @@ const Parser = struct { | ... | @@ -2497,7 +2512,10 @@ const Parser = struct { |
| 2497 | try p.scratch.append(p.gpa, elem_init); | 2512 | try p.scratch.append(p.gpa, elem_init); |
| 2498 | switch (p.token_tags[p.tok_i]) { | 2513 | switch (p.token_tags[p.tok_i]) { |
| 2499 | .comma => p.tok_i += 1, | 2514 | .comma => p.tok_i += 1, |
| 2500 | .r_brace => { p.tok_i += 1; break; }, | 2515 | .r_brace => { |
| | 2516 | p.tok_i += 1; |
| | 2517 | break; |
| | 2518 | }, |
| 2501 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), | 2519 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), |
| 2502 | // Likely just a missing comma; give error but continue parsing. | 2520 | // Likely just a missing comma; give error but continue parsing. |
| 2503 | else => try p.warnExpected(.comma), | 2521 | else => try p.warnExpected(.comma), |
| ... | @@ -2555,7 +2573,10 @@ const Parser = struct { | ... | @@ -2555,7 +2573,10 @@ const Parser = struct { |
| 2555 | const identifier = try p.expectToken(.identifier); | 2573 | const identifier = try p.expectToken(.identifier); |
| 2556 | switch (p.token_tags[p.tok_i]) { | 2574 | switch (p.token_tags[p.tok_i]) { |
| 2557 | .comma => p.tok_i += 1, | 2575 | .comma => p.tok_i += 1, |
| 2558 | .r_brace => { p.tok_i += 1; break; }, | 2576 | .r_brace => { |
| | 2577 | p.tok_i += 1; |
| | 2578 | break; |
| | 2579 | }, |
| 2559 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), | 2580 | .colon, .r_paren, .r_bracket => return p.failExpected(.r_brace), |
| 2560 | // Likely just a missing comma; give error but continue parsing. | 2581 | // Likely just a missing comma; give error but continue parsing. |
| 2561 | else => try p.warnExpected(.comma), | 2582 | else => try p.warnExpected(.comma), |
| ... | @@ -2992,14 +3013,14 @@ const Parser = struct { | ... | @@ -2992,14 +3013,14 @@ const Parser = struct { |
| 2992 | _ = try p.parsePtrPayload(); | 3013 | _ = try p.parsePtrPayload(); |
| 2993 | | 3014 | |
| 2994 | const items = p.scratch.items[scratch_top..]; | 3015 | const items = p.scratch.items[scratch_top..]; |
| 2995 | switch(items.len) { | 3016 | switch (items.len) { |
| 2996 | 0 => return p.addNode(.{ | 3017 | 0 => return p.addNode(.{ |
| 2997 | .tag = .switch_case_one, | 3018 | .tag = .switch_case_one, |
| 2998 | .main_token = arrow_token, | 3019 | .main_token = arrow_token, |
| 2999 | .data = .{ | 3020 | .data = .{ |
| 3000 | .lhs = 0, | 3021 | .lhs = 0, |
| 3001 | .rhs = try p.expectAssignExpr(), | 3022 | .rhs = try p.expectAssignExpr(), |
| 3002 | } | 3023 | }, |
| 3003 | }), | 3024 | }), |
| 3004 | 1 => return p.addNode(.{ | 3025 | 1 => return p.addNode(.{ |
| 3005 | .tag = .switch_case_one, | 3026 | .tag = .switch_case_one, |
| ... | @@ -3007,7 +3028,7 @@ const Parser = struct { | ... | @@ -3007,7 +3028,7 @@ const Parser = struct { |
| 3007 | .data = .{ | 3028 | .data = .{ |
| 3008 | .lhs = items[0], | 3029 | .lhs = items[0], |
| 3009 | .rhs = try p.expectAssignExpr(), | 3030 | .rhs = try p.expectAssignExpr(), |
| 3010 | } | 3031 | }, |
| 3011 | }), | 3032 | }), |
| 3012 | else => return p.addNode(.{ | 3033 | else => return p.addNode(.{ |
| 3013 | .tag = .switch_case, | 3034 | .tag = .switch_case, |
| ... | @@ -3375,7 +3396,10 @@ const Parser = struct { | ... | @@ -3375,7 +3396,10 @@ const Parser = struct { |
| 3375 | } | 3396 | } |
| 3376 | switch (p.token_tags[p.tok_i]) { | 3397 | switch (p.token_tags[p.tok_i]) { |
| 3377 | .comma => p.tok_i += 1, | 3398 | .comma => p.tok_i += 1, |
| 3378 | .r_paren => { p.tok_i += 1; break; }, | 3399 | .r_paren => { |
| | 3400 | p.tok_i += 1; |
| | 3401 | break; |
| | 3402 | }, |
| 3379 | .colon, .r_brace, .r_bracket => return p.failExpected(.r_paren), | 3403 | .colon, .r_brace, .r_bracket => return p.failExpected(.r_paren), |
| 3380 | // Likely just a missing comma; give error but continue parsing. | 3404 | // Likely just a missing comma; give error but continue parsing. |
| 3381 | else => try p.warnExpected(.comma), | 3405 | else => try p.warnExpected(.comma), |
| ... | @@ -3444,7 +3468,10 @@ const Parser = struct { | ... | @@ -3444,7 +3468,10 @@ const Parser = struct { |
| 3444 | try p.scratch.append(p.gpa, param); | 3468 | try p.scratch.append(p.gpa, param); |
| 3445 | switch (p.token_tags[p.tok_i]) { | 3469 | switch (p.token_tags[p.tok_i]) { |
| 3446 | .comma => p.tok_i += 1, | 3470 | .comma => p.tok_i += 1, |
| 3447 | .r_paren => { p.tok_i += 1; break; }, | 3471 | .r_paren => { |
| | 3472 | p.tok_i += 1; |
| | 3473 | break; |
| | 3474 | }, |
| 3448 | // Likely just a missing comma; give error but continue parsing. | 3475 | // Likely just a missing comma; give error but continue parsing. |
| 3449 | else => try p.warnExpected(.comma), | 3476 | else => try p.warnExpected(.comma), |
| 3450 | } | 3477 | } |