summaryrefslogtreecommitdiff
path: root/Shenanigans/src/org/archphantom/shenanigans/elements/values/Function.java
diff options
context:
space:
mode:
Diffstat (limited to 'Shenanigans/src/org/archphantom/shenanigans/elements/values/Function.java')
-rw-r--r--Shenanigans/src/org/archphantom/shenanigans/elements/values/Function.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/values/Function.java b/Shenanigans/src/org/archphantom/shenanigans/elements/values/Function.java
new file mode 100644
index 0000000..2ceb15e
--- /dev/null
+++ b/Shenanigans/src/org/archphantom/shenanigans/elements/values/Function.java
@@ -0,0 +1,25 @@
+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 Function extends Value {
+ private ArrayList<String> arguments;
+ private Expression body;
+
+ public Function (ArrayList<String> arguments, Expression body) {
+ this.arguments = arguments;
+ this.body = body;
+ }
+
+ public ArrayList<String> getArgNames () {
+ return arguments;
+ }
+
+ public Value getValue (VarTable vars, Program program) {
+ return body.evaluate(vars, program);
+ }
+
+}