aboutsummaryrefslogtreecommitdiffstats
path: root/main/core/parser
diff options
context:
space:
mode:
Diffstat (limited to 'main/core/parser')
-rw-r--r--main/core/parser/ast/BooleanLiteralNode.java30
-rw-r--r--main/core/parser/datatype/BooleanDataContainer.java5
-rw-r--r--main/core/parser/datatype/IntegerDataContainer.java10
-rw-r--r--main/core/parser/datatype/StringDataContainer.java14
4 files changed, 45 insertions, 14 deletions
diff --git a/main/core/parser/ast/BooleanLiteralNode.java b/main/core/parser/ast/BooleanLiteralNode.java
new file mode 100644
index 0000000..0d9c505
--- /dev/null
+++ b/main/core/parser/ast/BooleanLiteralNode.java
@@ -0,0 +1,30 @@
+package com.jantuomi.interpreter.main.core.parser.ast;
+
+import com.jantuomi.interpreter.main.core.parser.datatype.BooleanDataContainer;
+import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
+import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Created by jan on 16.6.2016.
+ */
+public class BooleanLiteralNode extends ASTNode {
+ private BooleanDataContainer value;
+
+ public BooleanLiteralNode(Token token) {
+ super(token);
+ value = new BooleanDataContainer(Boolean.parseBoolean(token.getText()));
+ }
+
+ @Override
+ public DataContainer evaluate() {
+ return value;
+ }
+
+ @Override
+ List<ASTNode> getChildren() {
+ return Arrays.asList();
+ }
+}
diff --git a/main/core/parser/datatype/BooleanDataContainer.java b/main/core/parser/datatype/BooleanDataContainer.java
index 1536fca..af814bb 100644
--- a/main/core/parser/datatype/BooleanDataContainer.java
+++ b/main/core/parser/datatype/BooleanDataContainer.java
@@ -8,15 +8,14 @@ import com.jantuomi.interpreter.main.exception.InterpreterException;
*/
public class BooleanDataContainer extends DataContainer<Boolean> {
- private boolean value;
public BooleanDataContainer(boolean value) {
- this.value = value;
+ setData(value);
}
@Override
public String toString() {
- return Boolean.toString(value);
+ return Boolean.toString(getData());
}
@Override
diff --git a/main/core/parser/datatype/IntegerDataContainer.java b/main/core/parser/datatype/IntegerDataContainer.java
index 650db5c..1999131 100644
--- a/main/core/parser/datatype/IntegerDataContainer.java
+++ b/main/core/parser/datatype/IntegerDataContainer.java
@@ -5,28 +5,26 @@ package com.jantuomi.interpreter.main.core.parser.datatype;
*/
public class IntegerDataContainer extends DataContainer<Integer> {
- private int value;
-
public IntegerDataContainer(int value) {
- this.value = value;
+ setData(value);
}
@Override
public String toString() {
- return Integer.toString(value);
+ return Integer.toString(getData());
}
@Override
public DataContainer<Integer> add(DataContainer<Integer> other) {
return new IntegerDataContainer(
- this.value + ((IntegerDataContainer) other).value
+ this.getData() + other.getData()
);
}
@Override
public DataContainer<Integer> subtract(DataContainer<Integer> other) {
return new IntegerDataContainer(
- this.value - ((IntegerDataContainer) other).value
+ this.getData() - other.getData()
);
}
}
diff --git a/main/core/parser/datatype/StringDataContainer.java b/main/core/parser/datatype/StringDataContainer.java
index 9916f77..bbc9b29 100644
--- a/main/core/parser/datatype/StringDataContainer.java
+++ b/main/core/parser/datatype/StringDataContainer.java
@@ -1,29 +1,33 @@
package com.jantuomi.interpreter.main.core.parser.datatype;
+import com.jantuomi.interpreter.main.exception.ExceptionManager;
+import com.jantuomi.interpreter.main.exception.InterpreterException;
+
/**
* Created by jan on 16.6.2016.
*/
public class StringDataContainer extends DataContainer<String> {
- private String value;
+
public StringDataContainer(String text) {
- this.value = text;
+ setData(text);
}
@Override
public String toString() {
- return value;
+ return getData();
}
@Override
public DataContainer<String> add(DataContainer<String> other) {
return new StringDataContainer(
- value + ((StringDataContainer) other).value
+ getData() + other.getData()
);
}
@Override
- public DataContainer<String> subtract(DataContainer<String> other) {
+ public DataContainer<String> subtract(DataContainer<String> other) throws InterpreterException {
+ ExceptionManager.raise(InterpreterException.ExceptionType.TypeError, -1, "string", "string");
return null;
}
}