aboutsummaryrefslogtreecommitdiffstats
path: root/main/core/parser/ast/SymbolNode.java
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2016-06-22 22:33:33 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2016-07-26 19:47:10 +0300
commitfa02123ab00be8b8fe212c5d34ed021f1b63de74 (patch)
treea16534cafb01cf7e7dc12713815a2bc7188834b1 /main/core/parser/ast/SymbolNode.java
parent695f7f3e2613d96a597e15a8c6142019098745c8 (diff)
Add double type and fix exception types
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