public Exp and_test()
{
Exp e = not_test();
if (e == null)
return e;
for (; ; )
{
if (Peek(TokenType.COMMENT))
{
e.Comment = (string)Expect(TokenType.COMMENT).Value;
continue;
}
if (!PeekAndDiscard(TokenType.And))
break;
var r = not_test();
if (r == null)
Unexpected();
e = new BinExp(Op.LogAnd, e, r, filename, e.Start, r.End);
}
return e;
}