summaryrefslogtreecommitdiff
path: root/base/src/bjc/dicelang/eval/DecimalEvaluatorResult.java
diff options
context:
space:
mode:
authorBenjamin Culkin <bjculkin@sitri.goetia>2023-11-09 01:58:31 +0000
committerBenjamin Culkin <bjculkin@sitri.goetia>2023-11-09 01:58:31 +0000
commit13a96e852f2fea4d3b3cb03cf803007b9b63041e (patch)
treeea7bff952e92efa4b932526a9c84e8bc70de9a6d /base/src/bjc/dicelang/eval/DecimalEvaluatorResult.java
parentd9dcc94aa16a1609e47f8369dfe21a8d260887a9 (diff)
Add decimals
Add decimal literals and default to them over floats
Diffstat (limited to 'base/src/bjc/dicelang/eval/DecimalEvaluatorResult.java')
-rw-r--r--base/src/bjc/dicelang/eval/DecimalEvaluatorResult.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/base/src/bjc/dicelang/eval/DecimalEvaluatorResult.java b/base/src/bjc/dicelang/eval/DecimalEvaluatorResult.java
new file mode 100644
index 0000000..8b37d53
--- /dev/null
+++ b/base/src/bjc/dicelang/eval/DecimalEvaluatorResult.java
@@ -0,0 +1,39 @@
+package bjc.dicelang.eval;
+
+import java.math.BigDecimal;
+import java.util.Objects;
+
+public class DecimalEvaluatorResult extends EvaluatorResult {
+ public BigDecimal val;
+
+ public DecimalEvaluatorResult(BigDecimal val) {
+ super(Type.DEC);
+
+ this.val = val;
+ }
+
+ @Override
+ public String toString() {
+ return super.toString() + "(" + val + ")";
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + Objects.hash(val);
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (!super.equals(obj))
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ DecimalEvaluatorResult other = (DecimalEvaluatorResult) obj;
+ return Objects.equals(val, other.val);
+ }
+}