fn expectSwitchSuffix(p: *Parse, main_token: TokenIndex) !Node.Index p: *Parsemain_token: TokenIndex2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544fn expectSwitchSuffix(p: *Parse, main_token: TokenIndex) !Node.Index {
_ = try p.expectToken(.l_paren);
const expr_node = try p.expectExpr();
_ = try p.expectToken(.r_paren);
_ = try p.expectToken(.l_brace);
const cases = try p.parseSwitchProngList();
const trailing_comma = p.tokenTag(p.tok_i - 1) == .comma;
_ = try p.expectToken(.r_brace);
return p.addNode(.{
.tag = if (trailing_comma) .switch_comma else .@"switch",
.main_token = main_token,
.data = .{ .node_and_extra = .{
expr_node,
try p.addExtra(Node.SubRange{
.start = cases.start,
.end = cases.end,
}),
} },
});
}