aboutsummaryrefslogtreecommitdiffstats
path: root/main/core/parser/ast/SymbolNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/core/parser/ast/SymbolNode.java')
-rw-r--r--main/core/parser/ast/SymbolNode.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/main/core/parser/ast/SymbolNode.java b/main/core/parser/ast/SymbolNode.java
index c44d41b..5a4346a 100644
--- a/main/core/parser/ast/SymbolNode.java
+++ b/main/core/parser/ast/SymbolNode.java
@@ -3,11 +3,14 @@ package com.jantuomi.interpreter.main.core.parser.ast;
import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
import com.jantuomi.interpreter.main.core.runtime.State;
import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
+import com.jantuomi.interpreter.main.exception.ExceptionManager;
import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.sun.deploy.util.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
/**
* Created by jan on 17.6.2016.
@@ -46,7 +49,14 @@ public class SymbolNode extends ASTNode {
paramValues.add(param.evaluate());
}
}
- return State.getInstance().getSymbolValue(name, paramValues);
+ DataContainer returnValue = State.getInstance().getSymbolValue(name, paramValues);
+ if (returnValue != null) {
+ return returnValue;
+ } else {
+ ExceptionManager.raise(InterpreterException.ExceptionType.UndeclaredSymbolError, source.getLine(), name,
+ StringUtils.join(paramValues.stream().map(dataContainer -> dataContainer.toString()).collect(Collectors.toList()), ","));
+ return null;
+ }
}
@Override