summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/Token.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice-lang/src/bjc/dicelang/Token.java')
-rw-r--r--dice-lang/src/bjc/dicelang/Token.java149
1 files changed, 0 insertions, 149 deletions
diff --git a/dice-lang/src/bjc/dicelang/Token.java b/dice-lang/src/bjc/dicelang/Token.java
deleted file mode 100644
index 2841973..0000000
--- a/dice-lang/src/bjc/dicelang/Token.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package bjc.dicelang;
-
-import bjc.dicelang.dice.DieExpression;
-import bjc.utils.funcdata.IList;
-
-/*
- * @TODO 10/09/17 Ben Culkin :TokenReorg
- * Split the class into subclasses based off of type.
- */
-/**
- * Lexer token.
- */
-@SuppressWarnings("javadoc")
-public class Token {
- public final static Token NIL_TOKEN = new Token(Type.NIL);
-
- /**
- * Possible token types
- */
- public static enum Type {
- // Natural tokens
- // These are produced from lexemes
- ADD, SUBTRACT, MULTIPLY, DIVIDE, IDIVIDE, INT_LIT, FLOAT_LIT, STRING_LIT, VREF, DICE_LIT, DICESCALAR, DICEFUDGE, DICEGROUP, DICECONCAT, DICELIST, LET, BIND, COERCE, STRCAT, STRREP, OPAREN, CPAREN, OBRACKET, CBRACKET, OBRACE, CBRACE,
-
- // Synthetic tokens
- // These are produced when needed
- NIL, GROUPSEP, TOKGROUP, TAGOP, TAGOPR
- }
-
- public final Type type;
-
- // This is used for the following token types
- // INT_LIT (int value)
- // STRING_LIT (index into string table)
- // VREF (index into sym table)
- // O* and C* (sym-count of current token)
- public long intValue;
-
- // This is used for the following token types
- // FLOAT_LIT (float value)
- public double floatValue;
-
- // This is used for the following token types
- // DICE_LIT (dice value)
- public DieExpression diceValue;
-
- // This is used for the following token types
- // TOKGROUP (the tokens in the group)
- // TAG* (the tagged construct)
- public IList<Token> tokenValues;
-
- public Token(final Type typ) {
- type = typ;
- }
-
- public Token(final Type typ, final long val) {
- this(typ);
-
- intValue = val;
- }
-
- public Token(final Type typ, final double val) {
- this(typ);
-
- floatValue = val;
- }
-
- public Token(final Type typ, final DieExpression val) {
- this(typ);
-
- diceValue = val;
- }
-
- public Token(final Type typ, final IList<Token> tkVals) {
- this(typ);
-
- tokenValues = tkVals;
- }
-
- @Override
- public String toString() {
- switch (type) {
- case INT_LIT:
- case STRING_LIT:
- case VREF:
- case OPAREN:
- case CPAREN:
- case OBRACKET:
- case CBRACKET:
- case OBRACE:
- case CBRACE:
- return type.toString() + "(" + intValue + ")";
-
- case FLOAT_LIT:
- return type.toString() + "(" + floatValue + ")";
-
- case DICE_LIT:
- return type.toString() + "(" + diceValue + ")";
-
- case TAGOP:
- case TAGOPR:
- case TOKGROUP:
- return type.toString() + "(" + tokenValues + ")";
-
- default:
- return type.toString();
- }
- }
-
- @Override
- public boolean equals(final Object other) {
- if (!(other instanceof Token)) {
- return false;
- }
-
- final Token otk = (Token) other;
-
- if (otk.type != type) {
- return false;
- }
-
- switch (type) {
- case OBRACE:
- case OBRACKET:
- return intValue == otk.intValue;
-
- default:
- return true;
- }
- }
-
- public boolean isGrouper() {
- switch (type) {
- case OPAREN:
- case OBRACE:
- case OBRACKET:
- return true;
-
- default:
- return false;
- }
- }
-
- @Override
- public int hashCode() {
- // TODO Auto-generated method stub
- return super.hashCode();
- }
-}