diff --git a/libs/interpreter/source/eval.cpp b/libs/interpreter/source/eval.cpp index 21a945f..8079cc4 100644 --- a/libs/interpreter/source/eval.cpp +++ b/libs/interpreter/source/eval.cpp @@ -178,12 +178,22 @@ namespace pslang::interpreter case ast::binary_operation_type::division: if constexpr (!std::is_same_v) { + if constexpr (std::is_integral_v) + { + if (arg2.value == static_cast(0)) + throw std::runtime_error("Division by zero"); + } return primitive_value(primitive_value_base{static_cast(arg1.value / arg2.value)}); } break; case ast::binary_operation_type::remainder: if constexpr (!std::is_same_v && std::is_integral_v) { + if constexpr (std::is_integral_v) + { + if (arg2.value == static_cast(0)) + throw std::runtime_error("Division by zero"); + } return primitive_value(primitive_value_base{static_cast(arg1.value % arg2.value)}); } break;