aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/com
diff options
context:
space:
mode:
authorjantuomi <jans.tuomi@gmail.com>2016-07-28 17:08:30 +0300
committerjantuomi <jans.tuomi@gmail.com>2016-07-28 17:08:30 +0300
commitee478b5487a262106fcb9eb62eec37d41972787c (patch)
tree5f5dffd2cb2d2eb1723adb9ec193f0afca541acb /src/main/com
parent98c3ebe59f90826f82dd9dede0cca182a2e34142 (diff)
Add missing files to previous commit
Diffstat (limited to 'src/main/com')
-rw-r--r--src/main/com/jantuomi/tunkki/core/parser/Parser.java1
-rw-r--r--src/main/com/jantuomi/tunkki/core/tokenizer/token/types/DeclareAssignToken.java34
2 files changed, 35 insertions, 0 deletions
diff --git a/src/main/com/jantuomi/tunkki/core/parser/Parser.java b/src/main/com/jantuomi/tunkki/core/parser/Parser.java
index e686377..08b02bb 100644
--- a/src/main/com/jantuomi/tunkki/core/parser/Parser.java
+++ b/src/main/com/jantuomi/tunkki/core/parser/Parser.java
@@ -86,6 +86,7 @@ public class Parser {
Token result = t.setArguments(args);
stack.push(result);
}
+
while (stack.size() > 0) {
output.add(stack.pop());
}
diff --git a/src/main/com/jantuomi/tunkki/core/tokenizer/token/types/DeclareAssignToken.java b/src/main/com/jantuomi/tunkki/core/tokenizer/token/types/DeclareAssignToken.java
new file mode 100644
index 0000000..fa729b4
--- /dev/null
+++ b/src/main/com/jantuomi/tunkki/core/tokenizer/token/types/DeclareAssignToken.java
@@ -0,0 +1,34 @@
+package com.jantuomi.tunkki.core.tokenizer.token.types;
+
+import com.jantuomi.tunkki.core.parser.ast.ASTNode;
+import com.jantuomi.tunkki.core.parser.ast.AssignmentNode;
+import com.jantuomi.tunkki.core.parser.ast.DeclareAssignNode;
+import com.jantuomi.tunkki.core.parser.ast.SymbolNode;
+import com.jantuomi.tunkki.exception.ExceptionManager;
+import com.jantuomi.tunkki.exception.TunkkiError;
+
+/**
+ * Created by jan on 28.7.2016.
+ */
+public class DeclareAssignToken extends BinaryOperatorToken {
+ public DeclareAssignToken() {
+ super(Type.DeclareAssignToken, "dset");
+ }
+
+ @Override
+ public ASTNode generateNode() throws TunkkiError {
+ ASTNode lhsNode = lhs.generateNode();
+
+ if (!(lhsNode instanceof SymbolNode)) {
+ ExceptionManager.raise(TunkkiError.ExceptionType.SyntaxError, getLine(), "non-symbol " + toString());
+ return null;
+ }
+
+ DeclareAssignNode node = new DeclareAssignNode(this,
+ (SymbolNode) lhsNode,
+ rhs.generateNode()
+ );
+
+ return node;
+ }
+}