pub fn parseCARET(p: *Parser) Error!bool p: *ParserMaxDepth4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411 pub fn parseCARET(p: *Parser) Error!bool {
const def_index = @backingInt(Def.defCARET);
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.parseskip() and blk_1: {
if (std.mem.startsWith(u8, p.source[p.i..], "^")) {
p.i += 1;
break :blk_1 true;
}
break :blk_1 false;
} and blk_1: {
const pos_1 = p.i;
const match_1 = (p.i < p.source.len and switch (p.source[p.i]) {
'='...'=',
=> blk_2: {
p.i += 1;
break :blk_2 true;
},
else => false,
});
p.i = pos_1;
break :blk_1 !match_1;
}) break :blk_0 true;
p.i = pos_0;
break :blk_0 false;
};
}