BigInteger left = leftLit.integerValue();
BigInteger right = rightLit.integerValue();
switch (op) {
case PLUS:
return new IntegerLiteralImpl(left.add(right));
case MINUS:
return new IntegerLiteralImpl(left.subtract(right));
case MULTIPLY:
return new IntegerLiteralImpl(left.multiply(right));
case DIVIDE:
throw new RuntimeException("Integer divisions should be processed as decimal divisions");
default:
throw new IllegalArgumentException("Unknown operator: " + op);
}