From 3ddd062d60d621971af59b480ba70e8bf9e705f1 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Sat, 21 Nov 2020 18:04:20 -0500 Subject: Rudimentary CLI for new die implementation --- .../neodice/statements/ArrayStatementValue.java | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 dice/src/example/java/bjc/dicelang/neodice/statements/ArrayStatementValue.java (limited to 'dice/src/example/java/bjc/dicelang/neodice/statements/ArrayStatementValue.java') diff --git a/dice/src/example/java/bjc/dicelang/neodice/statements/ArrayStatementValue.java b/dice/src/example/java/bjc/dicelang/neodice/statements/ArrayStatementValue.java new file mode 100644 index 0000000..66e14ad --- /dev/null +++ b/dice/src/example/java/bjc/dicelang/neodice/statements/ArrayStatementValue.java @@ -0,0 +1,54 @@ +package bjc.dicelang.neodice.statements; + +import static bjc.dicelang.neodice.statements.StatementValue.Type.*; + +import java.util.*; + +public class ArrayStatementValue extends StatementValue { + public final Type elementType; + public final ElementType[] values; + + @SafeVarargs + public ArrayStatementValue(Type elementType, ElementType... values) { + super(ARRAY); + + this.elementType = elementType; + this.values = values; + } + + @Override + public String toString() { + StringBuilder buffer = new StringBuilder(); + + buffer.append('('); + for (int index = 0; index < values.length; index++) { + ElementType value = values[index]; + + buffer.append(value); + if (index < values.length - 1) buffer.append(", "); + } + buffer.append(')'); + + return buffer.toString(); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + Arrays.hashCode(values); + result = prime * result + Objects.hash(elementType); + 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; + + ArrayStatementValue other = (ArrayStatementValue) obj; + + return elementType == other.elementType && Arrays.equals(values, other.values); + } +} \ No newline at end of file -- cgit v1.2.3