summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/examples/java/bjc/utils
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-03-28 08:47:45 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-03-28 08:47:45 -0400
commit260cc55c485980cd31193300962a88f1de8d62f7 (patch)
treec08c646056d04352e18bb80e07b9a35765c8946f /BJC-Utils2/src/examples/java/bjc/utils
parent4d904a55a1b5fe6506f81c2c292c07dfe839029f (diff)
Moved dice things to seperate project
Diffstat (limited to 'BJC-Utils2/src/examples/java/bjc/utils')
-rw-r--r--BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceASTLanguageState.java36
-rw-r--r--BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceASTLanguageTest.java151
-rw-r--r--BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceExpressionParserTest.java63
-rw-r--r--BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceLanguageState.java36
-rw-r--r--BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceLanguageTest.java96
5 files changed, 0 insertions, 382 deletions
diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceASTLanguageState.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceASTLanguageState.java
deleted file mode 100644
index 9d34a18..0000000
--- a/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceASTLanguageState.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package bjc.utils.examples.parsing;
-
-import java.util.Map;
-
-import bjc.utils.data.Pair;
-import bjc.utils.dice.DiceExpressionParser;
-import bjc.utils.dice.ast.DiceASTExpression;
-
-/**
- * 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/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceASTLanguageTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceASTLanguageTest.java
deleted file mode 100644
index 583c7a6..0000000
--- a/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceASTLanguageTest.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package bjc.utils.examples.parsing;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Scanner;
-import java.util.function.BiConsumer;
-import java.util.function.Consumer;
-
-import bjc.utils.data.GenHolder;
-import bjc.utils.dice.DiceExpressionParser;
-import bjc.utils.dice.IDiceExpression;
-import bjc.utils.dice.ast.DiceASTExpression;
-import bjc.utils.dice.ast.DiceASTFreezer;
-import bjc.utils.dice.ast.DiceASTParser;
-import bjc.utils.dice.ast.IDiceASTNode;
-import bjc.utils.dice.ast.VariableDiceNode;
-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/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceExpressionParserTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceExpressionParserTest.java
deleted file mode 100644
index db26a5c..0000000
--- a/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceExpressionParserTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package bjc.utils.examples.parsing;
-
-import java.util.HashMap;
-import java.util.Scanner;
-
-import bjc.utils.dice.DiceExpressionParser;
-import bjc.utils.dice.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/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceLanguageState.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceLanguageState.java
deleted file mode 100644
index 5f1bcc9..0000000
--- a/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceLanguageState.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package bjc.utils.examples.parsing;
-
-import java.util.Map;
-
-import bjc.utils.data.Pair;
-import bjc.utils.dice.DiceExpressionParser;
-import bjc.utils.dice.IDiceExpression;
-
-/**
- * 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/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceLanguageTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceLanguageTest.java
deleted file mode 100644
index 3ae79f2..0000000
--- a/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceLanguageTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package bjc.utils.examples.parsing;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Scanner;
-import java.util.function.BiConsumer;
-
-import bjc.utils.dice.DiceExpressionParser;
-import bjc.utils.dice.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();
- }
-}