pub fn parseIfExpr(p: *Parser) Error!bool p: *ParserMaxDepth1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283 pub fn parseIfExpr(p: *Parser) Error!bool {
const def_index = @backingInt(Def.defIfExpr);
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.parseIfPrefix() and try p.parseExpr() and blk_2: {
const pos_2 = p.i;
if (try p.parseKEYWORD_else() and (try p.parsePayload() or true) and try p.parseExpr()) break :blk_2 true;
p.i = pos_2;
if (blk_3: {
const pos_3 = p.i;
const match_3 = try p.parseKEYWORD_else();
p.i = pos_3;
break :blk_3 !match_3;
}) break :blk_2 true;
p.i = pos_2;
break :blk_2 false;
}) break :blk_0 true;
p.i = pos_0;
break :blk_0 false;
};
}