diff options
| author | jantuomi <jans.tuomi@gmail.com> | 2016-08-03 16:05:00 +0300 |
|---|---|---|
| committer | jantuomi <jans.tuomi@gmail.com> | 2016-08-03 16:06:14 +0300 |
| commit | a1fec5892f8ae6012f44014c8cc730bb3d69a823 (patch) | |
| tree | 5a549806315277bcbf0e398d54204f2e09aeb799 /src/main | |
| parent | 30a0538595d697ac88c554d8ba26c2b43a4c6c86 (diff) | |
Add ObjectMember operator (:) token and node
References #14
Diffstat (limited to 'src/main')
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); } |
