From bf5f97983a7cd58e5d1147d6d6d93c2b307fe0fb Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 18 Apr 2016 17:22:36 -0400 Subject: Implemented arrays --- .../bjc/dicelang/examples/DiceASTLanguageTest.java | 21 ++++++++++++++------- .../dicelang/examples/DiceExpressionPreparer.java | 2 ++ 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'dice-lang/src/examples/java/bjc/dicelang') 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 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 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 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 fullyExpandedTokens = ListUtils.deAffixTokens(semiExpandedTokens, ops); -- cgit v1.2.3