aboutsummaryrefslogtreecommitdiffstats
path: root/main/core/runtime
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2016-06-20 20:55:22 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2016-07-26 19:47:02 +0300
commitd745f000d6d60b9cdf0ba40dbf80660c1aa6bc61 (patch)
treee00ea32ae3a2d291768084544cb21429281dc0ae /main/core/runtime
parentd35a37a449d31e6f4b43b937abf7b0e1fc497828 (diff)
Implemented general enhancements
Diffstat (limited to 'main/core/runtime')
-rw-r--r--main/core/runtime/Interpreter.java8
-rw-r--r--main/core/runtime/State.java7
2 files changed, 12 insertions, 3 deletions
diff --git a/main/core/runtime/Interpreter.java b/main/core/runtime/Interpreter.java
index 00294e2..0789822 100644
--- a/main/core/runtime/Interpreter.java
+++ b/main/core/runtime/Interpreter.java
@@ -2,7 +2,9 @@ package com.jantuomi.interpreter.main.core.runtime;
import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
+import com.sun.deploy.util.StringUtils;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -19,17 +21,17 @@ public class Interpreter {
}
public static String execute(List<ASTNode> sequence) {
- StringBuilder output = new StringBuilder();
+ List<String> output = new ArrayList<>();
for (ASTNode node : sequence) {
DataContainer data = node.evaluate();
if (data != null) {
String out = data.toString();
- output.append(out);
+ output.add(out);
} else {
break;
}
}
- return output.toString();
+ return StringUtils.join(output, " ");
}
}
diff --git a/main/core/runtime/State.java b/main/core/runtime/State.java
index 7e4fb71..7d1a2fa 100644
--- a/main/core/runtime/State.java
+++ b/main/core/runtime/State.java
@@ -1,8 +1,10 @@
package com.jantuomi.interpreter.main.core.runtime;
+import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -29,6 +31,11 @@ public class State {
}
}
+ public DataContainer getSymbolValue(String symbol, List<ASTNode> parameters) {
+ // TODO
+ return null;
+ }
+
public void setSymbolValue(String symbol, DataContainer value) {
variables.put(symbol, value);
}