diff --git a/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/Expression.kt b/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/Expression.kt index 1a793c0..d876671 100644 --- a/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/Expression.kt +++ b/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/Expression.kt @@ -21,6 +21,7 @@ sealed class Expression : Number() { // abstract operator fun div(other: Expression): Expression abstract fun toTerm(): Term + abstract fun getSimplified(): Expression companion object { val ZERO: Expression = SimpleExpression(Term.ZERO) diff --git a/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/AdditiveExpression.kt b/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/AdditiveExpression.kt index b8bd75a..047f6b6 100644 --- a/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/AdditiveExpression.kt +++ b/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/AdditiveExpression.kt @@ -50,6 +50,8 @@ internal class AdditiveExpression private constructor(private val expressions: C // TODO override fun getValue(): BigDecimal = BigDecimal.ZERO + // TODO + override fun getSimplified(): Expression = this override fun hashCode(): Int = createHashCode(listOf(expressions, "AdditiveExpression")) diff --git a/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/MultiplicativeExpression.kt b/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/MultiplicativeExpression.kt index 9415672..84697e8 100644 --- a/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/MultiplicativeExpression.kt +++ b/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/MultiplicativeExpression.kt @@ -48,7 +48,7 @@ internal class MultiplicativeExpression private constructor(expressions: ConstMu } } - fun getSimplified(): Expression = SimpleExpression(toTerm()) + override fun getSimplified(): Expression = SimpleExpression(toTerm()) override fun getValue(): BigDecimal = getSimplified().getValue() override fun hashCode(): Int = createHashCode(listOf(expressions, "MultiplicativeExpression")) diff --git a/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/SimpleExpression.kt b/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/SimpleExpression.kt index ff66577..4281dff 100644 --- a/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/SimpleExpression.kt +++ b/exact-numbers/src/main/kotlin/xyz/lbres/exactnumbers/expressions/expression/SimpleExpression.kt @@ -19,7 +19,7 @@ internal class SimpleExpression(private val term: Term) : ExpressionImpl() { override fun inverse(): Expression = SimpleExpression(term.inverse()) override fun toTerm(): Term = term - fun getSimplified(): Expression = getOrSet({ simplified }, { simplified = it }) { SimpleExpression(term.getSimplified()) } + override fun getSimplified(): Expression = getOrSet({ simplified }, { simplified = it }) { SimpleExpression(term.getSimplified()) } override fun getValue(): BigDecimal = term.getValue() override fun hashCode(): Int = createHashCode(listOf(term, "Expression"))