pub fn parseStatement(p: *Parser) Error!bool p: *ParserMaxDepth595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621 pub fn parseStatement(p: *Parser) Error!bool {
const def_index = @backingInt(Def.defStatement);
if (p.depths[def_index] > max_depth) return error.MaxDepth;
p.depths[def_index] += 1;
defer p.depths[def_index] -= 1;
return blk_0: {
const pos_0 = p.i;
if (try p.parseIfStatement()) break :blk_0 true;
p.i = pos_0;
if (try p.parseLabeledStatement()) break :blk_0 true;
p.i = pos_0;
if (try p.parseKEYWORD_nosuspend() and try p.parseBlockExprStatement()) break :blk_0 true;
p.i = pos_0;
if (try p.parseKEYWORD_comptime() and try p.parseBlockExpr()) break :blk_0 true;
p.i = pos_0;
if (try p.parseKEYWORD_suspend() and try p.parseBlockExprStatement()) break :blk_0 true;
p.i = pos_0;
if (blk_1: {
const pos_1 = p.i;
const match_1 = try p.parseStatementPrefix();
p.i = pos_1;
break :blk_1 !match_1;
} and (try p.parseKEYWORD_comptime() or true) and try p.parseAssignExpr() and try p.parseSEMICOLON()) break :blk_0 true;
p.i = pos_0;
break :blk_0 false;
};
}