gecko-dev/js/js2/java/ArithmeticNode.java

33 lines
794 B
Java
Raw Normal View History

1999-04-26 22:50:50 +00:00
class ArithmeticNode extends BinaryNode {
ArithmeticNode(String aOp, ExpressionNode aLeft, ExpressionNode aRight)
{
super(aOp, aLeft, aRight);
}
1999-05-07 22:07:22 +00:00
1999-05-28 19:00:48 +00:00
JSValue eval(Environment theEnv)
1999-05-07 22:07:22 +00:00
{
1999-05-28 19:00:48 +00:00
JSValue lV = left.eval(theEnv);
JSValue rV = right.eval(theEnv);
1999-05-07 22:07:22 +00:00
if (op == "+")
1999-05-28 19:00:48 +00:00
return lV.add(theEnv, rV);
1999-05-07 22:07:22 +00:00
else
if (op == "-")
1999-05-28 19:00:48 +00:00
return lV.subtract(theEnv, rV);
else
if (op == "*")
1999-05-28 19:00:48 +00:00
return lV.multiply(theEnv, rV);
else
if (op == "/")
1999-05-28 19:00:48 +00:00
return lV.divide(theEnv, rV);
else
if (op == "%")
1999-05-28 19:00:48 +00:00
return lV.remainder(theEnv, rV);
else {
1999-05-07 22:07:22 +00:00
System.out.println("missing arithmetic op " + op);
1999-05-28 19:00:48 +00:00
return null;
}
1999-05-07 22:07:22 +00:00
}
1999-04-26 22:50:50 +00:00
}