From 18ef4f2b18d9a5d305c0c6df9902b6599cdaab5c Mon Sep 17 00:00:00 2001 From: GeonoTRON2000 Date: Fri, 2 May 2014 22:17:23 -0700 Subject: Fixed glitches with namespace variable storage, added NamespaceAccess tester. --- .../shenanigans/elements/expressions/statements/Assignment.java | 3 ++- .../shenanigans/elements/expressions/statements/FunctionCall.java | 4 +--- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'Shenanigans/src/org/archphantom/shenanigans/elements/expressions') 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+"."); } } -- cgit v1.2.3