summaryrefslogtreecommitdiff
path: root/Shenanigans/src/org/archphantom/shenanigans/elements/values/Array.java
diff options
context:
space:
mode:
Diffstat (limited to 'Shenanigans/src/org/archphantom/shenanigans/elements/values/Array.java')
-rw-r--r--Shenanigans/src/org/archphantom/shenanigans/elements/values/Array.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/values/Array.java b/Shenanigans/src/org/archphantom/shenanigans/elements/values/Array.java
new file mode 100644
index 0000000..c03b66f
--- /dev/null
+++ b/Shenanigans/src/org/archphantom/shenanigans/elements/values/Array.java
@@ -0,0 +1,37 @@
+package org.archphantom.shenanigans.elements.values;
+import java.util.ArrayList;
+import org.archphantom.shenanigans.elements.Program;
+import org.archphantom.shenanigans.elements.expressions.Expression;
+import org.archphantom.shenanigans.elements.variables.VarTable;
+
+public class Array extends Value {
+ private ArrayList<Expression> vals;
+
+ public Array (ArrayList<Expression> values) {
+ this.vals = values;
+ }
+
+ public Array (String string) {
+ this.vals = new ArrayList<Expression>(string.length());
+ for (int i = 0; i < string.length(); i++) {
+ this.vals.add(new CharValue(string.charAt(i)));
+ }
+ }
+
+ public Expression getElement (IntValue index, VarTable vars, Program program) {
+ return vals.get(index.intValue(vars, program).intValue());
+ }
+
+ public Expression setElement (IntValue index, Expression value, VarTable vars, Program program) {
+ return vals.set(index.intValue(vars, program).intValue(), value);
+ }
+
+ public int size () {
+ return vals.size();
+ }
+
+ public ArrayList<Expression> getValue(VarTable vars, Program program) {
+ return vals;
+ }
+
+}