switchFull
Function parameters
Parameters
Index into `tokens`, or null.
Types
- OptionalTokenIndex
- Index into `tokens`, or null.
- TokenOffset
- A relative token index.
- OptionalTokenOffset
- A relative token index, or null.
- full
- Fully assembled AST node information.
- ExtraIndex
- Index into `extra_data`.
Functions in this namespace
Functions
- parse
- Result should be freed with tree.deinit() when there are
- renderAlloc
- `gpa` is used for allocating the resulting formatted source code.
- errorOffset
- Returns an extra offset for column and byte offset of errors that
- legacyAsm
- To be deleted after 0.15.0 is tagged
Source
Implementation
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,
};
}