aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/com/jantuomi/tunkki/core/parser/ast/ObjectMemberNode.java20
-rw-r--r--src/main/com/jantuomi/tunkki/core/parser/tokenizer/Tokenizer.java2
-rw-r--r--src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/TokenFactory.java2
-rw-r--r--src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectMemberToken.java20
-rw-r--r--src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/UnaryOperatorToken.java3
5 files changed, 46 insertions, 1 deletions
diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/ObjectMemberNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/ObjectMemberNode.java
new file mode 100644
index 0000000..deed962
--- /dev/null
+++ b/src/main/com/jantuomi/tunkki/core/parser/ast/ObjectMemberNode.java
@@ -0,0 +1,20 @@
+package com.jantuomi.tunkki.core.parser.ast;
+
+import com.jantuomi.tunkki.core.parser.datatype.Datatype;
+import com.jantuomi.tunkki.core.parser.tokenizer.token.Token;
+import com.jantuomi.tunkki.exception.types.TunkkiError;
+
+/**
+ * Created by jan on 3.8.2016.
+ */
+public class ObjectMemberNode extends UnaryOperatorNode {
+ public ObjectMemberNode(Token token, ASTNode operand) {
+ super(token, operand);
+ }
+
+ @Override
+ public Datatype evaluate() throws TunkkiError {
+ // TODO
+ return null;
+ }
+}
diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/Tokenizer.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/Tokenizer.java
index 2571b61..c3c0b05 100644
--- a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/Tokenizer.java
+++ b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/Tokenizer.java
@@ -66,8 +66,8 @@ public class Tokenizer {
tokenRegexes.put(Token.Type.BranchToken, "^(if)\\b");
tokenRegexes.put(Token.Type.CallToken, "^([a-öA-Ö]+\\w*)\\?[\\s|\\!]");
+ tokenRegexes.put(Token.Type.ObjectMemberToken, "^([a-öA-Ö]+)\\:");
tokenRegexes.put(Token.Type.SymbolToken, "^([a-öA-Ö]+\\w*)\\b");
- tokenRegexes.put(Token.Type.ObjectMemberToken, "^([a-öA-Ö]+\\w*)\\:\\b");
discardedTokenTypes.add(Token.Type.WhitespaceToken);
discardedTokenTypes.add(Token.Type.CommentToken);
diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/TokenFactory.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/TokenFactory.java
index 21cd13b..5d26617 100644
--- a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/TokenFactory.java
+++ b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/TokenFactory.java
@@ -62,6 +62,8 @@ public class TokenFactory {
return new CallToken(text, rawText);
case CallEndToken:
return new CallEndToken();
+ case ObjectMemberToken:
+ return new ObjectMemberToken(text, rawText);
case BranchToken:
return new BranchToken();
case NegationToken:
diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectMemberToken.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectMemberToken.java
new file mode 100644
index 0000000..ec9cacd
--- /dev/null
+++ b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/ObjectMemberToken.java
@@ -0,0 +1,20 @@
+package com.jantuomi.tunkki.core.parser.tokenizer.token.types;
+
+import com.jantuomi.tunkki.core.parser.ast.ASTNode;
+import com.jantuomi.tunkki.core.parser.ast.ObjectMemberNode;
+import com.jantuomi.tunkki.exception.types.TunkkiError;
+
+/**
+ * Created by jan on 3.8.2016.
+ */
+public class ObjectMemberToken extends UnaryOperatorToken {
+ public ObjectMemberToken(String text, String rawText) {
+ super(Type.ObjectMemberToken, text, rawText);
+ }
+
+ @Override
+ public ASTNode generateNode() throws TunkkiError {
+ ObjectMemberNode node = new ObjectMemberNode(this, operand.generateNode());
+ return node;
+ }
+}
diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/UnaryOperatorToken.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/UnaryOperatorToken.java
index 2327619..43b0d2e 100644
--- a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/UnaryOperatorToken.java
+++ b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/UnaryOperatorToken.java
@@ -10,6 +10,9 @@ import java.util.List;
* Created by jan on 28.6.2016.
*/
abstract public class UnaryOperatorToken extends Token {
+ public UnaryOperatorToken(Type type, String text, String rawText) {
+ super(type, text, rawText);
+ }
public UnaryOperatorToken(Type type, String text) {
super(type, text);
}