summaryrefslogtreecommitdiff
path: root/Shenanigans/src/org/archphantom/shenanigans/elements/expressions
diff options
context:
space:
mode:
authorGeonoTRON2000 <geono@thegt.org>2014-05-02 22:17:23 -0700
committerGeonoTRON2000 <geono@thegt.org>2014-05-02 22:17:23 -0700
commit18ef4f2b18d9a5d305c0c6df9902b6599cdaab5c (patch)
treebc0f26e66230f3da35fba60ee82a1c8b4ee8d00a /Shenanigans/src/org/archphantom/shenanigans/elements/expressions
parent196117c0da164c226e111cc72a6cc169634f91c5 (diff)
downloadshenanigans-18ef4f2b18d9a5d305c0c6df9902b6599cdaab5c.tar.gz
Fixed glitches with namespace variable storage, added NamespaceAccess
tester.
Diffstat (limited to 'Shenanigans/src/org/archphantom/shenanigans/elements/expressions')
-rw-r--r--Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Assignment.java3
-rw-r--r--Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/FunctionCall.java4
2 files changed, 3 insertions, 4 deletions
diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Assignment.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Assignment.java
index 34b7812..3536750 100644
--- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Assignment.java
+++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/Assignment.java
@@ -20,7 +20,8 @@ public class Assignment extends Expression {
String varname = identifier.substring(identifier.indexOf('.')+1);
Namespace ns;
if ((ns = program.getNamespace(nspacecall)) != null) {
- return ns.setVar(varname, value, vars, program);
+ Value val = value.evaluate(vars, program);
+ return ns.setVar(varname, val, vars, program);
} else {
return null;
}
diff --git a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/FunctionCall.java b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/FunctionCall.java
index e3ba9f8..2fa2d5a 100644
--- a/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/FunctionCall.java
+++ b/Shenanigans/src/org/archphantom/shenanigans/elements/expressions/statements/FunctionCall.java
@@ -1,6 +1,5 @@
package org.archphantom.shenanigans.elements.expressions.statements;
import java.util.ArrayList;
-
import org.archphantom.shenanigans.elements.Program;
import org.archphantom.shenanigans.elements.expressions.Expression;
import org.archphantom.shenanigans.elements.expressions.Variable;
@@ -28,10 +27,9 @@ public class FunctionCall extends Expression {
localVars.set(argNames.get(i), arguments.get(i).evaluate(vars, program));
}
Value retval = function.getValue(localVars, program);
- System.out.println("Function returned a "+retval.getClass().getSimpleName()+": "+retval.hashCode());
return retval;
} else {
- throw new RuntimeException("No such function exists.");
+ throw new RuntimeException("No such function exists: "+identifier+".");
}
}