diff options
Diffstat (limited to 'Shenanigans/src/org/archphantom/shenanigans/elements/values/Function.java')
| -rw-r--r-- | Shenanigans/src/org/archphantom/shenanigans/elements/values/Function.java | 25 |
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); + } + +} |
