void BitShift(out Expression exp)
{
Expression second;
PlusMinus(out exp);
while (la.kind == 38 || la.kind == 39) {
if (la.kind == 38) {
Get();
} else {
Get();
}
Token tok = t;
PlusMinus(out second);
if (!ExpectInt(exp, tok, false)) { return; }
if (!ExpectInt(second, tok, true)) { return; }
if (tok.val == "<<") {
exp = new ShiftLeft((TypedExpression<int>)exp, (TypedExpression<int>)second);
} else if (tok.val == ">>") {
exp = new ShiftRight((TypedExpression<int>)exp, (TypedExpression<int>)second);
}
}
}