summaryrefslogtreecommitdiff
path: root/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-10 21:39:05 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-10 21:39:05 -0400
commit05c17c6e0e8e5e9015da4d1396587c4af0ea09d3 (patch)
tree3a2685040342447c22605f4d71b50d3e0fa3d185 /dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java
parentbf726639e1bc70b30dc5e5ae2cf349a5bbdfb0ae (diff)
Removed old code that wasn't being used
Diffstat (limited to 'dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java')
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java34
1 files changed, 26 insertions, 8 deletions
diff --git a/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java
index db2ba98..f6500e3 100644
--- a/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java
@@ -2,10 +2,14 @@ package bjc.dicelang.ast;
import java.util.InputMismatchException;
-import bjc.dicelang.old.ast.nodes.IDiceASTNode;
-import bjc.dicelang.old.ast.nodes.LiteralDiceNode;
-import bjc.dicelang.old.ast.nodes.OperatorDiceNode;
-import bjc.dicelang.old.ast.nodes.VariableDiceNode;
+import bjc.dicelang.IDiceExpression;
+import bjc.dicelang.ast.nodes.DiceLiteralNode;
+import bjc.dicelang.ast.nodes.DiceLiteralType;
+import bjc.dicelang.ast.nodes.IDiceASTNode;
+import bjc.dicelang.ast.nodes.ILiteralDiceNode;
+import bjc.dicelang.ast.nodes.IntegerLiteralNode;
+import bjc.dicelang.ast.nodes.OperatorDiceNode;
+import bjc.dicelang.ast.nodes.VariableDiceNode;
import bjc.utils.funcdata.IFunctionalList;
import bjc.utils.parserutils.AST;
import bjc.utils.parserutils.TreeConstructor;
@@ -26,8 +30,8 @@ public class DiceASTParser {
*/
public static AST<IDiceASTNode> createFromString(
IFunctionalList<String> tokens) {
- AST<String> rawTokens =
- TreeConstructor.constructTree(tokens, (token) -> {
+ AST<String> rawTokens = TreeConstructor.constructTree(tokens,
+ (token) -> {
return isOperatorNode(token);
}, (operator) -> false, null);
// The last argument is valid because there are no special
@@ -48,8 +52,22 @@ public class DiceASTParser {
}
private static IDiceASTNode convertLeafNode(String leafNode) {
- if (LiteralDiceNode.isLiteral(leafNode)) {
- return new LiteralDiceNode(leafNode);
+ DiceLiteralType literalType = ILiteralDiceNode
+ .getLiteralType(leafNode);
+
+ if (literalType != null) {
+ switch (literalType) {
+ case DICE:
+ return new DiceLiteralNode(
+ IDiceExpression.toExpression(leafNode));
+ case INTEGER:
+ return new IntegerLiteralNode(
+ Integer.parseInt(leafNode));
+ default:
+ throw new InputMismatchException(
+ "Cannot convert string '" + leafNode
+ + "' into a literal.");
+ }
}
return new VariableDiceNode(leafNode);