Adds division to multiplicative expression. (#2091)

* Multiplication and division have the same priority.
* A new builtin interface DivWith is added.
* In some tests expecting a compilation error (syntax error), the error
  message now says it is expecting SLASH or binary *.
This commit is contained in:
Junhee Cho
2022-09-19 15:02:29 -07:00
committed by GitHub
parent 57cc4c6dec
commit 69d4363ea5
15 changed files with 89 additions and 8 deletions
+3
View File
@@ -192,6 +192,9 @@ auto Interpreter::EvalPrim(Operator op, Nonnull<const Value*> static_type,
case Operator::Mul:
return arena_->New<IntValue>(cast<IntValue>(*args[0]).value() *
cast<IntValue>(*args[1]).value());
case Operator::Div:
return arena_->New<IntValue>(cast<IntValue>(*args[0]).value() /
cast<IntValue>(*args[1]).value());
case Operator::Mod:
return arena_->New<IntValue>(cast<IntValue>(*args[0]).value() %
cast<IntValue>(*args[1]).value());