pub fn parseDOT(p: *Parser) Error!bool p: *ParserMaxDepth4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496 pub fn parseDOT(p: *Parser) Error!bool {
const def_index = @backingInt(Def.defDOT);
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;
};
}