void MulDivMod(out Expression exp)
{
Expression second;
UnaryOperator(out exp);
while (la.kind == 42 || la.kind == 43 || la.kind == 44) {
if (la.kind == 42) {
Get();
} else if (la.kind == 43) {
Get();
} else {
Get();
}
Token tok = t;
UnaryOperator(out second);
if (!ExpectInt(exp, tok, false)) { return; }
if (!ExpectInt(second, tok, true)) { return; }
if (tok.val == "*") {
exp = new Multiplication((TypedExpression<int>)exp, (TypedExpression<int>)second);
} else if (tok.val == "/") {
exp = new Division((TypedExpression<int>)exp, (TypedExpression<int>)second);
} else if (tok.val == "%") {
exp = new Modulo((TypedExpression<int>)exp, (TypedExpression<int>)second);
}
}
}