Ejemplo n.º 1
0
 @Override
 public Value binary(Term.BinaryOperator operator, Term left, Term right) {
   Value leftValue = left.accept(this);
   Value rightValue = right.accept(this);
   double l = leftValue.accept(extractNumber);
   double r = rightValue.accept(extractNumber);
   switch (operator) {
     case add:
       return values.number(l + r);
     case sub:
       return values.number(l - r);
     case mult:
       return values.number(l * r);
     case div:
       return values.number(l / r);
     default:
       throw new RuntimeException("Unknown operator: " + operator);
   }
 }
Ejemplo n.º 2
0
 @Override
 public Value number(double value) {
   return values.number(value);
 }