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.

findNextStmt

Attempts to find the next statement by searching for a semicolon

Parse.findNextStmt
fn findNextStmt(p: *Parse) void

File

lib/std/zig/Parse.zig:578

Code

fn findNextStmt(p: *Parse) void {
    if (!p.recover) {
        while (p.tokenTag(p.tok_i) != .eof) {
            p.tok_i += 1;
        }
        return;
    }
    var level: u32 = 0;
    while (true) {
        const tok = p.nextToken();
        switch (p.tokenTag(tok)) {
            .l_brace => level += 1,
            .r_brace => {
                if (level == 0) {
                    p.tok_i -= 1;
                    return;
                }
                level -= 1;
            },
            .semicolon => {
                if (level == 0) {
                    return;
                }
            },
            .eof => {
                p.tok_i -= 1;
                return;
            },
            else => {},
        }
    }
}