diff options
Diffstat (limited to 'dice-lang/src/examples/java')
| -rw-r--r-- | dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageTest.java | 21 | ||||
| -rw-r--r-- | dice-lang/src/examples/java/bjc/dicelang/examples/DiceExpressionPreparer.java | 2 |
2 files changed, 16 insertions, 7 deletions
diff --git a/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageTest.java b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageTest.java index a6d5c75..fb4b086 100644 --- a/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageTest.java +++ b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageTest.java @@ -7,6 +7,7 @@ import bjc.dicelang.ast.DiceASTInliner; import bjc.dicelang.ast.DiceASTOptimizer; import bjc.dicelang.ast.DiceASTParser; import bjc.dicelang.ast.DiceASTReferenceSanitizer; +import bjc.dicelang.ast.IResult; import bjc.dicelang.ast.nodes.IDiceASTNode; import bjc.dicelang.ast.optimization.ConstantCollapser; import bjc.dicelang.ast.optimization.OperationCondenser; @@ -114,7 +115,7 @@ public class DiceASTLanguageTest { IFunctionalList<String> preparedTokens = DiceExpressionPreparer.prepareCommand(currentLine); - + try { builtAST = DiceASTParser.createFromString(preparedTokens); } catch (IllegalStateException isex) { @@ -125,11 +126,17 @@ public class DiceASTLanguageTest { continue; } - int sampleRoll; + // Print out results + System.out.println("\tParsed: " + builtAST.toString()); ITree<IDiceASTNode> transformedAST = transformAST(builtAST, enviroment); + System.out + .println("\tEvaluated: " + transformedAST.toString()); + + IResult sampleRoll; + try { sampleRoll = DiceASTEvaluator.evaluateAST(transformedAST, enviroment); @@ -143,10 +150,6 @@ public class DiceASTLanguageTest { continue; } - // Print out results - System.out.println("\tParsed: " + builtAST.toString()); - System.out - .println("\tEvaluated: " + transformedAST.toString()); System.out.println("\t\tSample Roll: " + sampleRoll); // Increase the number of commands @@ -173,7 +176,11 @@ public class DiceASTLanguageTest { ITree<IDiceASTNode> sanitizedTree = DiceASTReferenceSanitizer .sanitize(condensedTree, enviroment); - return sanitizedTree; + optimizedTree = optimizer.optimizeTree(sanitizedTree, enviroment); + + condensedTree = OperationCondenser.condense(optimizedTree); + + return condensedTree; } private static String getNextCommand(Scanner inputSource, diff --git a/dice-lang/src/examples/java/bjc/dicelang/examples/DiceExpressionPreparer.java b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceExpressionPreparer.java index caf7f37..4524fa0 100644 --- a/dice-lang/src/examples/java/bjc/dicelang/examples/DiceExpressionPreparer.java +++ b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceExpressionPreparer.java @@ -67,6 +67,8 @@ public class DiceExpressionPreparer { ops.add(new Pair<>("(", "\\(")); ops.add(new Pair<>(")", "\\)")); + ops.add(new Pair<>("[", "\\[")); + ops.add(new Pair<>("]", "\\]")); IFunctionalList<String> fullyExpandedTokens = ListUtils.deAffixTokens(semiExpandedTokens, ops); |
