diff --git a/src/vm/expr.cc b/src/vm/expr.cc index 06e1156..39faf71 100644 --- a/src/vm/expr.cc +++ b/src/vm/expr.cc @@ -25,64 +25,64 @@ static int init_ = []() { BIN_OP(Sum, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(Subtraction, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(Subtraction, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(Subtraction, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(Subtraction, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(Multiplication, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(Multiplication, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(Multiplication, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(Multiplication, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(Division, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(Division, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(Division, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(Division, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(IntegerDivision, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(IntegerDivision, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(IntegerDivision, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(IntegerDivision, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(Equality, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(Equality, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(Equality, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(Equality, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(Inequality, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(Inequality, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(Inequality, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(Inequality, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(LessThan, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(LessThan, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(LessThan, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(LessThan, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(LessThanOrEquals, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(LessThanOrEquals, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(LessThanOrEquals, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(LessThanOrEquals, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(GreaterThan, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(GreaterThan, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(GreaterThan, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(GreaterThan, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(GreaterThanOrEquals, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(GreaterThanOrEquals, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(GreaterThanOrEquals, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(GreaterThanOrEquals, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(Power, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(Power, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(Power, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(Power, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(Modulo, Integer, Integer) { return Value::createInteger(a.as_integer() + b.as_integer()); }; - BIN_OP(, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; - BIN_OP(, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; - BIN_OP(, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; + BIN_OP(Modulo, Integer, Float) { return Value::createFloat((float) a.as_integer() + b.as_float()); }; + BIN_OP(Modulo, Float, Integer) { return Value::createFloat(a.as_float() + (float) b.as_integer()); }; + BIN_OP(Modulo, Float, Float) { return Value::createFloat(a.as_float() + b.as_float()); }; BIN_OP(ShiftLeft, Integer, Integer) { return Value::createInteger(a.as_integer() << b.as_integer()); }; BIN_OP(ShiftRight, Integer, Integer) { return Value::createInteger(a.as_integer() >> b.as_integer()); };