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 › AstGen › assign Private Function assign Doc Source Private Function std.zig.AstGen.assign
fn assign (gz : *GenZir , scope : *Scope , infix_node : Ast .Node .Index ) InnerError !void Params Errors File zig/AstGen.zig: 3345
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364 fn assign (gz : *GenZir , scope : *Scope , infix_node : Ast .Node .Index ) InnerError !void {
try emitDbgNode (gz , infix_node );
const astgen = gz .astgen ;
const tree = astgen .tree ;
const lhs , const rhs = tree .nodeData (infix_node ).node_and_node ;
if (tree .nodeTag (lhs ) == .identifier ) {
// This intentionally does not support `@"_"` syntax.
const ident_name = tree .tokenSlice (tree .nodeMainToken (lhs ));
if (mem .eql (u8 , ident_name , "_" )) {
_ = try expr (gz , scope , .{ .rl = .discard , .ctx = .assignment }, rhs );
return ;
}
}
const lvalue = try lvalExpr (gz , scope , lhs );
_ = try expr (gz , scope , .{ .rl = .{ .ptr = .{
.inst = lvalue ,
.src_node = infix_node ,
} } }, rhs );
}