pub fn parseWhileExpr(p: *Parser) Error!bool p: *ParserMaxDepth1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362 pub fn parseWhileExpr(p: *Parser) Error!bool {
const def_index = @backingInt(Def.defWhileExpr);
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.parseWhilePrefix() and try p.parseExpr() and (blk_3: {
const pos_3 = p.i;
if (try p.parseKEYWORD_else() and (try p.parsePayload() or true) and try p.parseExpr()) break :blk_3 true;
p.i = pos_3;
break :blk_3 false;
} or true)) break :blk_0 true;
p.i = pos_0;
break :blk_0 false;
};
}