summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-03-28 08:47:23 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-03-28 08:47:23 -0400
commit62e94ef994a59e87543445bb3c0ce0a37017a70a (patch)
treedfa1a488d3929e3f93e2a91669cdaf97c6d707f3
parent78d9c539e25f16fd15f06c2b2c48c0ad37a21540 (diff)
Renamed packages to suit updated project
-rw-r--r--dice-lang/.classpath8
-rw-r--r--dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageState.java36
-rw-r--r--dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageTest.java151
-rw-r--r--dice-lang/src/examples/java/bjc/dicelang/examples/DiceExpressionParserTest.java63
-rw-r--r--dice-lang/src/examples/java/bjc/dicelang/examples/DiceLanguageState.java36
-rw-r--r--dice-lang/src/examples/java/bjc/dicelang/examples/DiceLanguageTest.java96
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/BindingDiceExpression.java (renamed from dice-lang/src/bjc/utils/dice/BindingDiceExpression.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ComplexDice.java (renamed from dice-lang/src/bjc/utils/dice/ComplexDice.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/CompoundDice.java (renamed from dice-lang/src/bjc/utils/dice/CompoundDice.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/CompoundDiceExpression.java (renamed from dice-lang/src/bjc/utils/dice/CompoundDiceExpression.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/DiceExpressionBuilder.java (renamed from dice-lang/src/bjc/utils/dice/DiceExpressionBuilder.java)4
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/DiceExpressionParser.java (renamed from dice-lang/src/bjc/utils/dice/DiceExpressionParser.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/DiceExpressionType.java (renamed from dice-lang/src/bjc/utils/dice/DiceExpressionType.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/Die.java (renamed from dice-lang/src/bjc/utils/dice/Die.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java (renamed from dice-lang/src/bjc/utils/dice/IDiceExpression.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/PolyhedralDice.java (renamed from dice-lang/src/bjc/utils/dice/PolyhedralDice.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ReferenceDiceExpression.java (renamed from dice-lang/src/bjc/utils/dice/ReferenceDiceExpression.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ScalarDiceExpression.java (renamed from dice-lang/src/bjc/utils/dice/ScalarDiceExpression.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ScalarDie.java (renamed from dice-lang/src/bjc/utils/dice/ScalarDie.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/DiceASTExpression.java (renamed from dice-lang/src/bjc/utils/dice/ast/DiceASTExpression.java)8
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/DiceASTFlattener.java (renamed from dice-lang/src/bjc/utils/dice/ast/DiceASTFlattener.java)18
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/DiceASTFreezer.java (renamed from dice-lang/src/bjc/utils/dice/ast/DiceASTFreezer.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java (renamed from dice-lang/src/bjc/utils/dice/ast/DiceASTParser.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/IDiceASTNode.java (renamed from dice-lang/src/bjc/utils/dice/ast/IDiceASTNode.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/LiteralDiceNode.java (renamed from dice-lang/src/bjc/utils/dice/ast/LiteralDiceNode.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/OperatorDiceNode.java (renamed from dice-lang/src/bjc/utils/dice/ast/OperatorDiceNode.java)2
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/VariableDiceNode.java (renamed from dice-lang/src/bjc/utils/dice/ast/VariableDiceNode.java)2
27 files changed, 417 insertions, 39 deletions
diff --git a/dice-lang/.classpath b/dice-lang/.classpath
index 149cb3c..a22b331 100644
--- a/dice-lang/.classpath
+++ b/dice-lang/.classpath
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src">
- <attributes>
- <attribute name="optional" value="true"/>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/examples/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
diff --git a/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageState.java b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageState.java
new file mode 100644
index 0000000..f5a6a29
--- /dev/null
+++ b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageState.java
@@ -0,0 +1,36 @@
+package bjc.dicelang.examples;
+
+import java.util.Map;
+
+import bjc.dicelang.DiceExpressionParser;
+import bjc.dicelang.ast.DiceASTExpression;
+import bjc.utils.data.Pair;
+
+/**
+ * Internal state of the AST-based dice langugae
+ *
+ * @author ben
+ *
+ */
+public class DiceASTLanguageState extends
+ Pair<DiceExpressionParser, Map<String, DiceASTExpression>> {
+
+ /**
+ * Create a new state
+ */
+ public DiceASTLanguageState() {
+ }
+
+ /**
+ * Create a new state with the given contents
+ *
+ * @param left
+ * The parser to use
+ * @param right
+ * The enviroment to use
+ */
+ public DiceASTLanguageState(DiceExpressionParser left,
+ Map<String, DiceASTExpression> right) {
+ super(left, right);
+ }
+}
diff --git a/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageTest.java b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageTest.java
new file mode 100644
index 0000000..8f3fe1d
--- /dev/null
+++ b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceASTLanguageTest.java
@@ -0,0 +1,151 @@
+package bjc.dicelang.examples;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Scanner;
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
+
+import bjc.dicelang.DiceExpressionParser;
+import bjc.dicelang.IDiceExpression;
+import bjc.dicelang.ast.DiceASTExpression;
+import bjc.dicelang.ast.DiceASTFreezer;
+import bjc.dicelang.ast.DiceASTParser;
+import bjc.dicelang.ast.IDiceASTNode;
+import bjc.dicelang.ast.VariableDiceNode;
+import bjc.utils.data.GenHolder;
+import bjc.utils.funcdata.ITreePart.TreeLinearizationMethod;
+import bjc.utils.parserutils.AST;
+
+/**
+ * A test of the AST based dice language
+ *
+ * @author ben
+ *
+ */
+public class DiceASTLanguageTest {
+ private static final class LastChecker
+ implements Consumer<IDiceASTNode> {
+ private GenHolder<Boolean> canUpdateLast;
+
+ public LastChecker(GenHolder<Boolean> canUpdateLast) {
+ this.canUpdateLast = canUpdateLast;
+ }
+
+ @Override
+ public void accept(IDiceASTNode tn) {
+ if (tn instanceof VariableDiceNode && ((VariableDiceNode) tn)
+ .getVariable().equals("last")) {
+ canUpdateLast.transform((s) -> false);
+ } else {
+ canUpdateLast.transform((s) -> true);
+ }
+ }
+ }
+
+ private static Map<String, BiConsumer<String, DiceASTLanguageState>> acts;
+
+ static {
+ acts = new HashMap<>();
+
+ acts.put("roll", DiceASTLanguageTest::rollReference);
+ acts.put("env", DiceASTLanguageTest::printEnv);
+ acts.put("freeze", DiceASTLanguageTest::freezeVar);
+ }
+
+ private static void freezeVar(String ln, DiceASTLanguageState stat) {
+ String[] strangs = ln.split(" ");
+
+ System.out.println("Freezing references in " + strangs[1]);
+
+ stat.doWith((dep, env) -> {
+ env.put(strangs[1], new DiceASTExpression(
+ DiceASTFreezer.freezeAST(env.get(strangs[1]), env),
+ env));
+ });
+ }
+
+ /**
+ * @param ln
+ * Unused parameter, kept in place to conform to expected
+ * type sig
+ */
+ private static void printEnv(String ln, DiceASTLanguageState stat) {
+ System.out.println("Printing enviroment for debugging purposes.");
+
+ stat.doWith((dep, env) -> env.forEach((key, exp) -> System.out
+ .println("\tKey: " + key + "\tExp: " + exp.toString())));
+ }
+
+ private static void rollReference(String ln,
+ DiceASTLanguageState stat) {
+ String[] strangs = ln.split(" ");
+
+ System.out.println("\tRolling dice expression " + strangs[1] + " "
+ + strangs[2] + " times.");
+
+ int nRolls = Integer.parseInt(strangs[2]);
+
+ IDiceExpression dexp =
+ stat.merge((dep, env) -> env.get(strangs[1]));
+
+ for (int i = 1; i <= nRolls; i++) {
+ int roll = dexp.roll();
+
+ System.out.println("\tRolled " + roll);
+ }
+ }
+
+ /**
+ * Main method of class
+ *
+ * @param args
+ * Unused CLI args
+ */
+ public static void main(String[] args) {
+ Scanner scn = new Scanner(System.in);
+ int i = 0;
+
+ System.out.print("dice-lang-" + i + "> ");
+ String ln = scn.nextLine();
+
+ DiceASTParser dap = new DiceASTParser();
+
+ DiceExpressionParser dep = new DiceExpressionParser();
+ Map<String, DiceASTExpression> env = new HashMap<>();
+ DiceASTLanguageState state = new DiceASTLanguageState(dep, env);
+
+ while (!ln.equalsIgnoreCase("quit")) {
+ String header = ln.split(" ")[0];
+
+ if (acts.containsKey(header)) {
+ acts.get(header).accept(ln, state);
+ } else {
+
+ AST<IDiceASTNode> builtAST = dap.buildAST(ln);
+ DiceASTExpression exp =
+ new DiceASTExpression(builtAST, env);
+
+ System.out.println("\tParsed: " + exp.toString());
+ System.out.println("\tSample Roll: " + exp.roll());
+
+ GenHolder<Boolean> canUpdateLast = new GenHolder<>(false);
+
+ exp.getAst().traverse(TreeLinearizationMethod.PREORDER,
+ new LastChecker(canUpdateLast));
+
+ if (canUpdateLast.unwrap((s) -> s)) {
+ env.put("last", exp);
+ }
+ }
+
+ i++;
+
+ System.out.print("dice-lang-" + i + "> ");
+ ln = scn.nextLine();
+ }
+
+ System.out.println("Bye.");
+ scn.close();
+ }
+}
diff --git a/dice-lang/src/examples/java/bjc/dicelang/examples/DiceExpressionParserTest.java b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceExpressionParserTest.java
new file mode 100644
index 0000000..d2f947a
--- /dev/null
+++ b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceExpressionParserTest.java
@@ -0,0 +1,63 @@
+package bjc.dicelang.examples;
+
+import java.util.HashMap;
+import java.util.Scanner;
+
+import bjc.dicelang.DiceExpressionParser;
+import bjc.dicelang.IDiceExpression;
+
+/**
+ * Driver class for testing expression parser
+ *
+ * @author ben
+ *
+ */
+public class DiceExpressionParserTest {
+ /**
+ * Run the parser test
+ *
+ * @param args
+ * Unused CLI arguments
+ */
+ public static void main(String[] args) {
+ /*
+ * Get a scanner for input
+ */
+ Scanner scn = new Scanner(System.in);
+
+ /*
+ * Ask to enter a expression
+ */
+ System.out.print("Enter dice expression: ");
+
+ String exp = scn.nextLine();
+
+ /*
+ * Enter amount of times to roll an expression
+ */
+ System.out.print("Enter number of times to roll: ");
+
+ int nTimes = Integer.parseInt(scn.nextLine());
+
+ /*
+ * Parse the string expression into a dice expression
+ */
+ DiceExpressionParser dep = new DiceExpressionParser();
+
+ IDiceExpression dexp = dep.parse(exp, new HashMap<>());
+
+ /*
+ * Roll the dice a specified amount of times
+ */
+ for (int i = 1; i <= nTimes; i++) {
+ int roll = dexp.roll();
+
+ System.out.println("Rolled " + roll);
+ }
+
+ /*
+ * Clean up after ourselves
+ */
+ scn.close();
+ }
+}
diff --git a/dice-lang/src/examples/java/bjc/dicelang/examples/DiceLanguageState.java b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceLanguageState.java
new file mode 100644
index 0000000..0fb6a0f
--- /dev/null
+++ b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceLanguageState.java
@@ -0,0 +1,36 @@
+package bjc.dicelang.examples;
+
+import java.util.Map;
+
+import bjc.dicelang.DiceExpressionParser;
+import bjc.dicelang.IDiceExpression;
+import bjc.utils.data.Pair;
+
+/**
+ * Internal state of dice language
+ *
+ * @author ben
+ *
+ */
+public class DiceLanguageState
+ extends Pair<DiceExpressionParser, Map<String, IDiceExpression>> {
+
+ /**
+ * Create a new state
+ */
+ public DiceLanguageState() {
+ }
+
+ /**
+ * Create a new state with the desired parameters
+ *
+ * @param left
+ * The parser to use
+ * @param right
+ * The enviroment to use
+ */
+ public DiceLanguageState(DiceExpressionParser left,
+ Map<String, IDiceExpression> right) {
+ super(left, right);
+ }
+}
diff --git a/dice-lang/src/examples/java/bjc/dicelang/examples/DiceLanguageTest.java b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceLanguageTest.java
new file mode 100644
index 0000000..c832d6b
--- /dev/null
+++ b/dice-lang/src/examples/java/bjc/dicelang/examples/DiceLanguageTest.java
@@ -0,0 +1,96 @@
+package bjc.dicelang.examples;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Scanner;
+import java.util.function.BiConsumer;
+
+import bjc.dicelang.DiceExpressionParser;
+import bjc.dicelang.IDiceExpression;
+
+/**
+ * Test of dice language
+ *
+ * @author ben
+ *
+ */
+public class DiceLanguageTest {
+ private static Map<String, BiConsumer<String, DiceLanguageState>> acts;
+
+ static {
+ acts = new HashMap<>();
+
+ acts.put("roll", DiceLanguageTest::rollReference);
+ acts.put("env", DiceLanguageTest::printEnv);
+ }
+
+ /**
+ * @param ln
+ * Unused parameter, kept to comply with expected type sig
+ */
+ private static void printEnv(String ln, DiceLanguageState stat) {
+ System.out.println("Printing enviroment for debugging purposes.");
+
+ stat.doWith((dep, env) -> env.forEach((key, exp) -> System.out
+ .println("\tKey: " + key + "\tExp: " + exp.toString())));
+ }
+
+ private static void rollReference(String ln, DiceLanguageState stat) {
+ String[] strangs = ln.split(" ");
+
+ System.out.println("\tRolling dice expression " + strangs[1] + " "
+ + strangs[2] + " times.");
+
+ int nRolls = Integer.parseInt(strangs[2]);
+
+ IDiceExpression dexp =
+ stat.merge((dep, env) -> env.get(strangs[1]));
+
+ for (int i = 1; i <= nRolls; i++) {
+ int roll = dexp.roll();
+
+ System.out.println("\tRolled " + roll);
+ }
+ }
+
+ /**
+ * Main method
+ *
+ * @param args
+ * Unused CLI args
+ */
+ public static void main(String[] args) {
+ Scanner scn = new Scanner(System.in);
+ int i = 0;
+
+ System.out.print("dice-lang-" + i + "> ");
+ String ln = scn.nextLine();
+
+ DiceExpressionParser dep = new DiceExpressionParser();
+ Map<String, IDiceExpression> env = new HashMap<>();
+ DiceLanguageState state = new DiceLanguageState(dep, env);
+
+ while (!ln.equalsIgnoreCase("quit")) {
+ String header = ln.split(" ")[0];
+
+ if (acts.containsKey(header)) {
+ acts.get(header).accept(ln, state);
+ } else {
+ IDiceExpression exp = dep.parse(ln, env);
+
+ System.out.println("\tParsed: " + exp.toString());
+ System.out.println("\tSample Roll: " + exp.roll());
+
+ env.put("last", exp);
+ }
+
+ i++;
+
+ System.out.print("dice-lang-" + i + "> ");
+ ln = scn.nextLine();
+ }
+
+ System.out.println("Bye.");
+ scn.close();
+ }
+}
diff --git a/dice-lang/src/bjc/utils/dice/BindingDiceExpression.java b/dice-lang/src/main/java/bjc/dicelang/BindingDiceExpression.java
index 9ecce97..94dd761 100644
--- a/dice-lang/src/bjc/utils/dice/BindingDiceExpression.java
+++ b/dice-lang/src/main/java/bjc/dicelang/BindingDiceExpression.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
import java.util.Map;
diff --git a/dice-lang/src/bjc/utils/dice/ComplexDice.java b/dice-lang/src/main/java/bjc/dicelang/ComplexDice.java
index 226f9fd..5d88001 100644
--- a/dice-lang/src/bjc/utils/dice/ComplexDice.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ComplexDice.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
/**
* Implements a collection of one or more of a particular die, where the
diff --git a/dice-lang/src/bjc/utils/dice/CompoundDice.java b/dice-lang/src/main/java/bjc/dicelang/CompoundDice.java
index 3393711..dcde650 100644
--- a/dice-lang/src/bjc/utils/dice/CompoundDice.java
+++ b/dice-lang/src/main/java/bjc/dicelang/CompoundDice.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
/**
* Implements a "compound dice"
diff --git a/dice-lang/src/bjc/utils/dice/CompoundDiceExpression.java b/dice-lang/src/main/java/bjc/dicelang/CompoundDiceExpression.java
index 41b1df2..162317b 100644
--- a/dice-lang/src/bjc/utils/dice/CompoundDiceExpression.java
+++ b/dice-lang/src/main/java/bjc/dicelang/CompoundDiceExpression.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
/**
* Implements a class for combining two dice with an operator
diff --git a/dice-lang/src/bjc/utils/dice/DiceExpressionBuilder.java b/dice-lang/src/main/java/bjc/dicelang/DiceExpressionBuilder.java
index b1de9ad..5ced36d 100644
--- a/dice-lang/src/bjc/utils/dice/DiceExpressionBuilder.java
+++ b/dice-lang/src/main/java/bjc/dicelang/DiceExpressionBuilder.java
@@ -1,6 +1,6 @@
-package bjc.utils.dice;
+package bjc.dicelang;
-import static bjc.utils.dice.DiceExpressionType.*;
+import static bjc.dicelang.DiceExpressionType.*;
/**
* Build a dice expression piece by piece
diff --git a/dice-lang/src/bjc/utils/dice/DiceExpressionParser.java b/dice-lang/src/main/java/bjc/dicelang/DiceExpressionParser.java
index 4113be4..9f96835 100644
--- a/dice-lang/src/bjc/utils/dice/DiceExpressionParser.java
+++ b/dice-lang/src/main/java/bjc/dicelang/DiceExpressionParser.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
import java.util.Map;
import java.util.Stack;
diff --git a/dice-lang/src/bjc/utils/dice/DiceExpressionType.java b/dice-lang/src/main/java/bjc/dicelang/DiceExpressionType.java
index d719ae8..296d751 100644
--- a/dice-lang/src/bjc/utils/dice/DiceExpressionType.java
+++ b/dice-lang/src/main/java/bjc/dicelang/DiceExpressionType.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
/**
* Enumeration for basic dice expression operators
diff --git a/dice-lang/src/bjc/utils/dice/Die.java b/dice-lang/src/main/java/bjc/dicelang/Die.java
index c768aa5..addc2af 100644
--- a/dice-lang/src/bjc/utils/dice/Die.java
+++ b/dice-lang/src/main/java/bjc/dicelang/Die.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
import java.util.Random;
diff --git a/dice-lang/src/bjc/utils/dice/IDiceExpression.java b/dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java
index 5ead9ad..93a75b9 100644
--- a/dice-lang/src/bjc/utils/dice/IDiceExpression.java
+++ b/dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
/**
* An expression for something that can be rolled like a polyhedral die
diff --git a/dice-lang/src/bjc/utils/dice/PolyhedralDice.java b/dice-lang/src/main/java/bjc/dicelang/PolyhedralDice.java
index 314d47b..e0bef64 100644
--- a/dice-lang/src/bjc/utils/dice/PolyhedralDice.java
+++ b/dice-lang/src/main/java/bjc/dicelang/PolyhedralDice.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
/**
* Utility class that produces common polyhedral dice
diff --git a/dice-lang/src/bjc/utils/dice/ReferenceDiceExpression.java b/dice-lang/src/main/java/bjc/dicelang/ReferenceDiceExpression.java
index d38e0f9..c1a4a79 100644
--- a/dice-lang/src/bjc/utils/dice/ReferenceDiceExpression.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ReferenceDiceExpression.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
import java.util.Map;
diff --git a/dice-lang/src/bjc/utils/dice/ScalarDiceExpression.java b/dice-lang/src/main/java/bjc/dicelang/ScalarDiceExpression.java
index 4c3f244..a7aae83 100644
--- a/dice-lang/src/bjc/utils/dice/ScalarDiceExpression.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ScalarDiceExpression.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
/**
* A dice expression that combines a scalar and a dice
diff --git a/dice-lang/src/bjc/utils/dice/ScalarDie.java b/dice-lang/src/main/java/bjc/dicelang/ScalarDie.java
index 4ed99b9..8078e8b 100644
--- a/dice-lang/src/bjc/utils/dice/ScalarDie.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ScalarDie.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice;
+package bjc.dicelang;
/**
* A die that represents a static number
diff --git a/dice-lang/src/bjc/utils/dice/ast/DiceASTExpression.java b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTExpression.java
index 89adb65..6e9b836 100644
--- a/dice-lang/src/bjc/utils/dice/ast/DiceASTExpression.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTExpression.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice.ast;
+package bjc.dicelang.ast;
import java.util.HashMap;
import java.util.Map;
@@ -6,10 +6,10 @@ import java.util.function.BinaryOperator;
import org.apache.commons.lang3.StringUtils;
+import bjc.dicelang.ComplexDice;
+import bjc.dicelang.CompoundDice;
+import bjc.dicelang.IDiceExpression;
import bjc.utils.data.Pair;
-import bjc.utils.dice.ComplexDice;
-import bjc.utils.dice.CompoundDice;
-import bjc.utils.dice.IDiceExpression;
import bjc.utils.parserutils.AST;
/**
diff --git a/dice-lang/src/bjc/utils/dice/ast/DiceASTFlattener.java b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTFlattener.java
index 70465a5..aa15c4d 100644
--- a/dice-lang/src/bjc/utils/dice/ast/DiceASTFlattener.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTFlattener.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice.ast;
+package bjc.dicelang.ast;
import java.util.HashMap;
import java.util.Map;
@@ -6,14 +6,14 @@ import java.util.function.BinaryOperator;
import org.apache.commons.lang3.StringUtils;
-import bjc.utils.dice.BindingDiceExpression;
-import bjc.utils.dice.ComplexDice;
-import bjc.utils.dice.CompoundDice;
-import bjc.utils.dice.CompoundDiceExpression;
-import bjc.utils.dice.DiceExpressionType;
-import bjc.utils.dice.IDiceExpression;
-import bjc.utils.dice.ReferenceDiceExpression;
-import bjc.utils.dice.ScalarDie;
+import bjc.dicelang.BindingDiceExpression;
+import bjc.dicelang.ComplexDice;
+import bjc.dicelang.CompoundDice;
+import bjc.dicelang.CompoundDiceExpression;
+import bjc.dicelang.DiceExpressionType;
+import bjc.dicelang.IDiceExpression;
+import bjc.dicelang.ReferenceDiceExpression;
+import bjc.dicelang.ScalarDie;
import bjc.utils.parserutils.AST;
/**
diff --git a/dice-lang/src/bjc/utils/dice/ast/DiceASTFreezer.java b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTFreezer.java
index efe37c0..0e2134b 100644
--- a/dice-lang/src/bjc/utils/dice/ast/DiceASTFreezer.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTFreezer.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice.ast;
+package bjc.dicelang.ast;
import java.util.Map;
diff --git a/dice-lang/src/bjc/utils/dice/ast/DiceASTParser.java b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java
index 38c514a..5f16554 100644
--- a/dice-lang/src/bjc/utils/dice/ast/DiceASTParser.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/DiceASTParser.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice.ast;
+package bjc.dicelang.ast;
import org.apache.commons.lang3.StringUtils;
diff --git a/dice-lang/src/bjc/utils/dice/ast/IDiceASTNode.java b/dice-lang/src/main/java/bjc/dicelang/ast/IDiceASTNode.java
index 073da89..439bdac 100644
--- a/dice-lang/src/bjc/utils/dice/ast/IDiceASTNode.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/IDiceASTNode.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice.ast;
+package bjc.dicelang.ast;
/**
* The interface for a node in a dice AST
diff --git a/dice-lang/src/bjc/utils/dice/ast/LiteralDiceNode.java b/dice-lang/src/main/java/bjc/dicelang/ast/LiteralDiceNode.java
index b0c1400..8157844 100644
--- a/dice-lang/src/bjc/utils/dice/ast/LiteralDiceNode.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/LiteralDiceNode.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice.ast;
+package bjc.dicelang.ast;
/**
* A AST node that represents a literal value
diff --git a/dice-lang/src/bjc/utils/dice/ast/OperatorDiceNode.java b/dice-lang/src/main/java/bjc/dicelang/ast/OperatorDiceNode.java
index c4f7763..45c3d58 100644
--- a/dice-lang/src/bjc/utils/dice/ast/OperatorDiceNode.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/OperatorDiceNode.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice.ast;
+package bjc.dicelang.ast;
// The following classes need to be changed upon addition of a new operator
// 1. DiceASTExpression
diff --git a/dice-lang/src/bjc/utils/dice/ast/VariableDiceNode.java b/dice-lang/src/main/java/bjc/dicelang/ast/VariableDiceNode.java
index 43a09b2..e02952d 100644
--- a/dice-lang/src/bjc/utils/dice/ast/VariableDiceNode.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/VariableDiceNode.java
@@ -1,4 +1,4 @@
-package bjc.utils.dice.ast;
+package bjc.dicelang.ast;
/**
* A node that represents a variable reference