pub fn parseLARROW(p: *Parser) Error!bool p: *ParserMaxDepth4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708 pub fn parseLARROW(p: *Parser) Error!bool {
const def_index = @backingInt(Def.defLARROW);
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;
};
}