diff options
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.java | 20 |
1 files changed, 12 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 95495bd..d8c94dc 100644 --- a/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java +++ b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java @@ -28,17 +28,21 @@ public class DiceASTParser { * The list of tokens to convert * @return An AST built from the tokens */ - public static ITree<IDiceASTNode> createFromString( - IFunctionalList<String> tokens) { - ITree<String> rawTokens = TreeConstructor.constructTree(tokens, - (token) -> { + public static ITree<IDiceASTNode> + createFromString(IFunctionalList<String> tokens) { + ITree<String> rawTokens = + TreeConstructor.constructTree(tokens, (token) -> { return isOperatorNode(token); }, (operator) -> false, null); + // The last argument is valid because there are no special // operators yet, so it'll never get called - return rawTokens.rebuildTree(DiceASTParser::convertLeafNode, - DiceASTParser::convertOperatorNode); + ITree<IDiceASTNode> tokenizedTree = + rawTokens.rebuildTree(DiceASTParser::convertLeafNode, + DiceASTParser::convertOperatorNode); + + return tokenizedTree; } private static boolean isOperatorNode(String token) { @@ -52,8 +56,8 @@ public class DiceASTParser { } private static IDiceASTNode convertLeafNode(String leafNode) { - DiceLiteralType literalType = ILiteralDiceNode - .getLiteralType(leafNode); + DiceLiteralType literalType = + ILiteralDiceNode.getLiteralType(leafNode); if (literalType != null) { switch (literalType) { |
