diff options
Diffstat (limited to 'main/core/tokenizer/token')
| -rw-r--r-- | main/core/tokenizer/token/Token.java | 16 | ||||
| -rw-r--r-- | main/core/tokenizer/token/types/DivisionToken.java | 23 | ||||
| -rw-r--r-- | main/core/tokenizer/token/types/DoubleLiteralToken.java | 32 | ||||
| -rw-r--r-- | main/core/tokenizer/token/types/MultiplicationToken.java | 23 |
4 files changed, 94 insertions, 0 deletions
diff --git a/main/core/tokenizer/token/Token.java b/main/core/tokenizer/token/Token.java index a9b66e8..d4058cb 100644 --- a/main/core/tokenizer/token/Token.java +++ b/main/core/tokenizer/token/Token.java @@ -33,32 +33,42 @@ abstract public class Token { /* Token types, ordered by precedence */ public enum Type { CommentToken, + AdditionToken, SubtractionToken, DivisionToken, MultiplicationToken, + AssignmentToken, + LessThanToken, GreaterThanToken, LessOrEqualThanToken, GreaterOrEqualThanToken, EqualsToken, NotEqualsToken, + OpenParenToken, ClosedParenToken, + FunctionDefineToken, DeclarationToken, + StringLiteralToken, IntegerLiteralToken, BooleanLiteralToken, + DoubleLiteralToken, + WhitespaceToken, NewlineToken, + BranchToken, SymbolToken, EndBlockToken, FunctionBodyToken, BranchBodyToken, NegationToken, + NotAToken } @@ -162,10 +172,16 @@ abstract public class Token { return new StringLiteralToken(text, rawText); case BooleanLiteralToken: return new BooleanLiteralToken(text); + case DoubleLiteralToken: + return new DoubleLiteralToken(text, rawText); case AdditionToken: return new AdditionToken(); case SubtractionToken: return new SubtractionToken(); + case MultiplicationToken: + return new MultiplicationToken(); + case DivisionToken: + return new DivisionToken(); case FunctionDefineToken: return new FunctionDefineToken(); case EndBlockToken: diff --git a/main/core/tokenizer/token/types/DivisionToken.java b/main/core/tokenizer/token/types/DivisionToken.java new file mode 100644 index 0000000..14f4d13 --- /dev/null +++ b/main/core/tokenizer/token/types/DivisionToken.java @@ -0,0 +1,23 @@ +package com.jantuomi.interpreter.main.core.tokenizer.token.types; + +import com.jantuomi.interpreter.main.core.parser.ast.ASTNode; +import com.jantuomi.interpreter.main.core.parser.ast.DivisionNode; +import com.jantuomi.interpreter.main.exception.InterpreterException; + +/** + * Created by jan on 15.6.2016. + */ +public class DivisionToken extends BinaryOperatorToken { + public DivisionToken() { + super(Type.DivisionToken); + } + + @Override + public ASTNode generateNode() throws InterpreterException { + return new DivisionNode(this, + lhs.generateNode(), + rhs.generateNode() + ); + + } +} diff --git a/main/core/tokenizer/token/types/DoubleLiteralToken.java b/main/core/tokenizer/token/types/DoubleLiteralToken.java new file mode 100644 index 0000000..1a379eb --- /dev/null +++ b/main/core/tokenizer/token/types/DoubleLiteralToken.java @@ -0,0 +1,32 @@ +package com.jantuomi.interpreter.main.core.tokenizer.token.types; + +import com.jantuomi.interpreter.main.core.parser.ast.ASTNode; +import com.jantuomi.interpreter.main.core.parser.ast.DoubleLiteralNode; +import com.jantuomi.interpreter.main.core.tokenizer.token.Token; + +import java.util.Arrays; +import java.util.List; + +/** + * Created by jan on 15.6.2016. + */ +public class DoubleLiteralToken extends Token{ + public DoubleLiteralToken(String text, String rawText) { + super(Type.DoubleLiteralToken, text, rawText); + } + + @Override + public ASTNode generateNode() { + return new DoubleLiteralNode(this); + } + + @Override + public Token setArguments(List<Token> args) { + return this; + } + + @Override + public List<Token> getChildren() { + return Arrays.asList(); + } +} diff --git a/main/core/tokenizer/token/types/MultiplicationToken.java b/main/core/tokenizer/token/types/MultiplicationToken.java new file mode 100644 index 0000000..521f01a --- /dev/null +++ b/main/core/tokenizer/token/types/MultiplicationToken.java @@ -0,0 +1,23 @@ +package com.jantuomi.interpreter.main.core.tokenizer.token.types; + +import com.jantuomi.interpreter.main.core.parser.ast.ASTNode; +import com.jantuomi.interpreter.main.core.parser.ast.MultiplicationNode; +import com.jantuomi.interpreter.main.exception.InterpreterException; + +/** + * Created by jan on 15.6.2016. + */ +public class MultiplicationToken extends BinaryOperatorToken { + public MultiplicationToken() { + super(Type.MultiplicationToken); + } + + @Override + public ASTNode generateNode() throws InterpreterException { + return new MultiplicationNode(this, + lhs.generateNode(), + rhs.generateNode() + ); + + } +} |
