From 84ddb6b6fa01f4e9a531b546b89cdd0a56ed49d5 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Sun, 21 Jul 2024 19:04:38 +0200 Subject: [PATCH] fix(evaluator)!: Throw exception when trying to do 0^0 Signed-off-by: Myzel394 <50424412+Myzel394@users.noreply.github.com> --- .../main/java/io/github/sadellie/evaluatto/Expression.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/data/evaluatto/src/main/java/io/github/sadellie/evaluatto/Expression.kt b/data/evaluatto/src/main/java/io/github/sadellie/evaluatto/Expression.kt index 39197b5b..354e96d1 100644 --- a/data/evaluatto/src/main/java/io/github/sadellie/evaluatto/Expression.kt +++ b/data/evaluatto/src/main/java/io/github/sadellie/evaluatto/Expression.kt @@ -216,7 +216,13 @@ class Expression( // Power if (moveIfMatched(Token.Operator.power)) { - expr = expr.pow(parseFactor()) + val factor = parseFactor() + + if (factor.compareTo(BigDecimal.ZERO) == 0) { + throw ExpressionException.BadExpression() + } + + expr = expr.pow(factor) } // Modulo