Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › zig/ › Ast.zig › tokensToSpan
tokensToSpan
Ast.tokensToSpan
pub fn tokensToSpan (tree : *const Ast , start : Ast .TokenIndex , end : Ast .TokenIndex , main : Ast .TokenIndex ) Span
File
Code
pub fn tokensToSpan (tree : *const Ast , start : Ast .TokenIndex , end : Ast .TokenIndex , main : Ast .TokenIndex ) Span {
var start_tok = start ;
var end_tok = end ;
if (tree .tokensOnSameLine (start , end )) {
} else if (tree .tokensOnSameLine (start , main )) {
end_tok = main ;
} else if (tree .tokensOnSameLine (main , end )) {
start_tok = main ;
} else {
start_tok = main ;
end_tok = main ;
}
const start_off = tree .tokenStart (start_tok );
const end_off = tree .tokenStart (end_tok ) + @as (u32 , @intCast (tree .tokenSlice (end_tok ).len ));
return Span { .start = start_off , .end = end_off , .main = tree .tokenStart (main ) };
}