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/ › Render.zig › fnProtoRparen
fnProtoRparen
Render.fnProtoRparen
fn fnProtoRparen (tree : Ast , fn_proto : Ast .full .FnProto , maybe_bang : Ast .TokenIndex ) Ast .TokenIndex
File
Code
fn fnProtoRparen (tree : Ast , fn_proto : Ast .full .FnProto , maybe_bang : Ast .TokenIndex ) Ast .TokenIndex {
// to find out which is first.
var rparen = if (tree .tokenTag (maybe_bang ) == .bang ) maybe_bang - 1 else maybe_bang ;
var smallest_start = tree .tokenStart (maybe_bang );
if (fn_proto .ast .align_expr .unwrap ()) |align_expr | {
const tok = tree .firstToken (align_expr ) - 3 ;
const start = tree .tokenStart (tok );
if (start < smallest_start ) {
rparen = tok ;
smallest_start = start ;
}
}
if (fn_proto .ast .addrspace_expr .unwrap ()) |addrspace_expr | {
const tok = tree .firstToken (addrspace_expr ) - 3 ;
const start = tree .tokenStart (tok );
if (start < smallest_start ) {
rparen = tok ;
smallest_start = start ;
}
}
if (fn_proto .ast .section_expr .unwrap ()) |section_expr | {
const tok = tree .firstToken (section_expr ) - 3 ;
const start = tree .tokenStart (tok );
if (start < smallest_start ) {
rparen = tok ;
smallest_start = start ;
}
}
if (fn_proto .ast .callconv_expr .unwrap ()) |callconv_expr | {
const tok = tree .firstToken (callconv_expr ) - 3 ;
const start = tree .tokenStart (tok );
if (start < smallest_start ) {
rparen = tok ;
smallest_start = start ;
}
}
assert (tree .tokenTag (rparen ) == .r_paren );
return rparen ;
}