aboutsummaryrefslogtreecommitdiffstats
path: root/main/core/parser/ast
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2016-06-15 21:56:03 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2016-07-26 19:46:51 +0300
commitf441022881945db08846e09a8f3bfee2f8cfa95d (patch)
tree3b565c6902e5b5b6c351df89fe1d58b00d79f091 /main/core/parser/ast
parent12eeefcdba1ee392f033f51e6b9826eaae3c4de6 (diff)
Add interpreter and AST
Diffstat (limited to 'main/core/parser/ast')
-rw-r--r--main/core/parser/ast/AdditionNode.java4
-rw-r--r--main/core/parser/ast/IntegerLiteralNode.java3
2 files changed, 5 insertions, 2 deletions
diff --git a/main/core/parser/ast/AdditionNode.java b/main/core/parser/ast/AdditionNode.java
index 3117e41..f6ebc84 100644
--- a/main/core/parser/ast/AdditionNode.java
+++ b/main/core/parser/ast/AdditionNode.java
@@ -29,6 +29,8 @@ public class AdditionNode extends ExpressionNode {
@Override
public DataContainer evaluate() {
- return null;
+ DataContainer lhs = this.lhs.evaluate();
+ DataContainer rhs = this.rhs.evaluate();
+ return lhs.add(rhs);
}
}
diff --git a/main/core/parser/ast/IntegerLiteralNode.java b/main/core/parser/ast/IntegerLiteralNode.java
index b68adf0..d2fceb1 100644
--- a/main/core/parser/ast/IntegerLiteralNode.java
+++ b/main/core/parser/ast/IntegerLiteralNode.java
@@ -1,6 +1,7 @@
package com.jantuomi.interpreter.main.core.parser.ast;
import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
+import com.jantuomi.interpreter.main.core.parser.datatype.IntegerDataContainer;
import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
import java.util.Arrays;
@@ -25,6 +26,6 @@ public class IntegerLiteralNode extends ExpressionNode {
@Override
public DataContainer evaluate() {
- return null;
+ return new IntegerDataContainer(data);
}
}