Source
pub fn switchFull(tree: Ast, node: Node.Index) full.Switch {
const main_token = tree.nodeMainToken(node);
const switch_token: TokenIndex, const label_token: ?TokenIndex = switch (tree.tokenTag(main_token)) {
.identifier => .{ main_token + 2, main_token },
.keyword_switch => .{ main_token, null },
else => unreachable,
};
const condition, const extra_index = tree.nodeData(node).node_and_extra;
const cases = tree.extraDataSlice(tree.extraData(extra_index, Ast.Node.SubRange), Node.Index);
return .{
.ast = .{
.switch_token = switch_token,
.condition = condition,
.cases = cases,
},
.label_token = label_token,
};
}