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 standard library.
std › zig › Ast › tokensToSpan Public Function tokensToSpan Doc Source Public Function std.zig.Ast.tokensToSpan
pub fn tokensToSpan (tree : *const Ast , start : Ast .TokenIndex , end : Ast .TokenIndex , main : Ast .TokenIndex ) Span Params tree : *const Ast start : Ast .TokenIndex end : Ast .TokenIndex main : Ast .TokenIndex File zig/Ast.zig: 3993
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010 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 )) {
// do nothing
} 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 ) };
}