summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RGens/pom.xml12
-rw-r--r--RGens/src/main/java/bjc/RGens/ZadronsPouch.java183
-rw-r--r--RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java19
-rw-r--r--RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java66
-rw-r--r--RGens/src/main/java/bjc/RGens/parser/ReaderState.java12
5 files changed, 152 insertions, 140 deletions
diff --git a/RGens/pom.xml b/RGens/pom.xml
index 0a36b67..9975156 100644
--- a/RGens/pom.xml
+++ b/RGens/pom.xml
@@ -2,6 +2,18 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
<groupId>bjc</groupId>
<artifactId>RGens</artifactId>
<version>0.0.1-SNAPSHOT</version>
diff --git a/RGens/src/main/java/bjc/RGens/ZadronsPouch.java b/RGens/src/main/java/bjc/RGens/ZadronsPouch.java
index 5b1615d..5fbc5c8 100644
--- a/RGens/src/main/java/bjc/RGens/ZadronsPouch.java
+++ b/RGens/src/main/java/bjc/RGens/ZadronsPouch.java
@@ -22,8 +22,7 @@ public class ZadronsPouch {
ZadronsPouch zp = new ZadronsPouch();
for (int i = 0; i < 100; i++) {
- IList<String> ls = zp.grammar
- .generateListValues("<item>", " ");
+ IList<String> ls = zp.grammar.generateListValues("<item>", " ");
StringBuilder sb = new StringBuilder();
@@ -41,150 +40,180 @@ public class ZadronsPouch {
public ZadronsPouch() {
grammar = new RandomGrammar<>();
- addRule("<item>", "<egg>", "<glove>", "<crys-sphere>", "<rock>",
- "<figurine>", "<vial>", "<mini-weapon>", "<bag>", "<card>",
- "<rope>", "<box>", "<wand>");
+ addRule("<item>",
+ "<egg>", "<glove>", "<crys-sphere>", "<rock>",
+ "<figurine>", "<vial>", "<mini-weapon>", "<bag>",
+ "<card>", "<rope>", "<box>", "<wand>");
addEggRules();
-
addGloveRules();
-
addCrysSphereRules();
-
addRockRules();
addFigurineRules();
-
addVialRules();
-
addMiniWeaponRules();
-
addBagRules();
addCardRules();
-
addRopeRules();
-
addBoxRules();
-
addWandRules();
}
private void addBagRules() {
- addRule("<bag>", "bag of <bag-type>", "<sack-type> sack",
- "<purse-type> purse");
- addRule("<bag-type>", "holding", "tricks", "useful items",
+ addRule("<bag>",
+ "bag of <bag-type>", "<sack-type> sack", "<purse-type> purse");
+ addRule("<bag-type>",
+ "holding", "tricks", "useful items",
"devouring", "dwarf-kind", "invisible cloth",
"monster summoning");
- addRule("<sack-type>", "lunch", "recursive");
- addRule("<purse-type>", "everfull");
+ addRule("<sack-type>",
+ "lunch", "recursive");
+ addRule("<purse-type>",
+ "everfull");
}
private void addBoxRules() {
- addRule("<box>", "<box-type> box", "cube of <box-type>");
- addRule("<box-type>", "limited-force", "frost-resisting",
- "morphing", "self-destructing", "pandora", "panicking");
+ addRule("<box>",
+ "<box-type> box", "cube of <box-type>");
+ addRule("<box-type>",
+ "limited-force", "frost-resisting", "morphing",
+ "self-destructing", "pandora", "panicking");
}
private void addCardRules() {
- addRule("<card>", "card of <card-type>", "<card-type> card");
- addRule("<card-type>", "fate", "teleporting", "elusive treasure",
- "spell-storing", "many-things", "imprisoning", "messaging",
- "bounty");
+ addRule("<card>",
+ "card of <card-type>", "<card-type> card");
+ addRule("<card-type>",
+ "fate", "teleporting", "elusive treasure", "spell-storing",
+ "many-things", "imprisoning", "messaging", "bounty");
}
private void addCrysSphereRules() {
- addRule("<crys-sphere>", "<sphere-type> spheres",
- "<sphere-type> sphere", "lens of <lens-type>",
- "<crystal-type> crystal", "crystal of <crystal-type>",
- "crystal ball", "crystal ball of <crys-suffix>");
- addRule("<sphere-type>", "microphonic", "seeing-eye");
- addRule("<lens-type>", "detection");
- addRule("<crystal-type>", "prison", "radar");
- addRule("<crys-suffix>", "jumping");
+ addRule("<crys-sphere>",
+ "<sphere-type> spheres", "<sphere-type> sphere",
+ "lens of <lens-type>", "<crystal-type> crystal",
+ "crystal of <crystal-type>", "crystal ball",
+ "crystal ball of <crys-suffix>");
+ addRule("<sphere-type>",
+ "microphonic", "seeing-eye");
+ addRule("<lens-type>",
+ "detection");
+ addRule("<crystal-type>",
+ "prison", "radar");
+ addRule("<crys-suffix>",
+ "jumping");
}
private void addEggRules() {
- addRule("<egg>", "<egg-type> egg");
- addRule("<egg-type>", "copper", "stone", "golden", "white",
- "white/pink", "glass");
+ addRule("<egg>",
+ "<egg-type> egg");
+ addRule("<egg-type>",
+ "copper", "stone", "golden",
+ "white", "white/pink", "glass");
}
private void addFigurineRules() {
- addRule("<figurine>", "<fig-material> <fig-animal>");
- addRule("<fig-material>", "golden", "onyx", "serpentine", "ivory",
+ addRule("<figurine>",
+ "<fig-material> <fig-animal>");
+ addRule("<fig-material>",
+ "golden", "onyx", "serpentine", "ivory",
"marble", "bronze", "jade", "limestone");
- addRule("<fig-animal>", "lion", "dog", "owl", "goat", "elephant",
- "warrior", "palace", "leprechaun");
+ addRule("<fig-animal>",
+ "lion", "dog", "owl", "goat",
+ "elephant", "warrior", "palace", "leprechaun");
}
private void addGloveRules() {
- addRule("<glove>", "gauntlets of <gauntlet-type>",
- "gloves of <glove-type>", "<glove-type> gloves");
- addRule("<gauntlet-type>", "dexterity", "power");
- addRule("<glove-type>", "pushing", "choking", "bigby", "stunning");
+ addRule("<glove>",
+ "gauntlets of <gauntlet-type>",
+ "gloves of <glove-type>",
+ "<glove-type> gloves");
+ addRule("<gauntlet-type>",
+ "dexterity", "power");
+ addRule("<glove-type>",
+ "pushing", "choking", "bigby", "stunning");
}
private void addMiniWeaponRules() {
- addRule("<mini-weapon>", "minature <weapon-type>",
- "small <weapon-type>", "tiny <weapon-type>",
- "<sling-type> sling", "<weapon-type>");
- addRule("<weapon-type>", "boomerang", "arrow", "net", "catapult",
- "hammer", "sword", "club");
- addRule("<sling-type>", "seeking");
+ addRule("<mini-weapon>",
+ "minature <weapon-type>", "small <weapon-type>",
+ "tiny <weapon-type>", "<sling-type> sling",
+ "<weapon-type>");
+ addRule("<weapon-type>",
+ "boomerang", "arrow", "net",
+ "catapult", "hammer", "sword", "club");
+ addRule("<sling-type>",
+ "seeking");
}
private void addRockRules() {
- addRule("<rock>", "<pebble-type> pebble", "stone of <stone-type>",
+ addRule("<rock>",
+ "<pebble-type> pebble", "stone of <stone-type>",
"<stone-type> stone", "brick of <brick-type>",
"<geode-type> geode");
- addRule("<pebble-type>", "inscribed", "elemental control");
- addRule("<stone-type>", "good-luck", "weight", "blind-defense",
- "metal-clinging");
- addRule("<brick-type>", "flying");
- addRule("<geode-type>", "ioun");
+ addRule("<pebble-type>",
+ "inscribed", "elemental control");
+ addRule("<stone-type>",
+ "good-luck", "weight",
+ "blind-defense", "metal-clinging");
+ addRule("<brick-type>",
+ "flying");
+ addRule("<geode-type>",
+ "ioun");
}
private void addRopeRules() {
- addRule("<rope>", "<rope-type> rope", "rope of <rope-type>",
+ addRule("<rope>",
+ "<rope-type> rope", "rope of <rope-type>",
"ball of <string-type> <string-kind>");
- addRule("<rope-type>", "trick", "entangling", "climbing",
- "dancing", "tripping", "snaring", "levitating",
- "self-entangling");
- addRule("<string-type>", "endless");
- addRule("<string-kind>", "string", "yarn");
+ addRule("<rope-type>",
+ "trick", "entangling", "climbing", "dancing",
+ "tripping", "snaring", "levitating", "self-entangling");
+ addRule("<string-type>",
+ "endless");
+ addRule("<string-kind>",
+ "string", "yarn");
}
private void addRule(String rule, String... cases) {
IList<IList<String>> cses = new FunctionalList<>();
for (String strang : cases) {
- cses.add(FunctionalStringTokenizer.fromString(strang)
- .toList(s -> s));
+ cses.add(FunctionalStringTokenizer.fromString(strang).toList(s -> s));
}
grammar.makeRule(rule, cses);
}
private void addVialRules() {
- addRule("<vial>", "vial of <vial-type>", "<vial-type> vial",
+ addRule("<vial>",
+ "vial of <vial-type>", "<vial-type> vial",
"<bottle-type> bottle", "<flask-type> flask");
- addRule("<vial-type>", "holding", "trapping", "experience",
- "unnatural regeneration");
- addRule("<bottle-type>", "ever-smoking", "wheezing",
+ addRule("<vial-type>",
+ "holding", "trapping",
+ "experience", "unnatural regeneration");
+ addRule("<bottle-type>",
+ "ever-smoking", "wheezing",
"blank potion");
- addRule("<flask-type>", "iron");
+ addRule("<flask-type>",
+ "iron");
}
private void addWandRules() {
- addRule("<wand>", "<wand-type> wand", "wand of <wand-type>",
+ addRule("<wand>",
+ "<wand-type> wand", "wand of <wand-type>",
"canceling <wand-type> wand");
- addRule("<wand-type>", "magic missile", "<spell-1>", "<spell-2>",
+ addRule("<wand-type>",
+ "magic missile", "<spell-1>", "<spell-2>",
"gusting", "life-detecting", "zadron");
- addRule("<spell-1>", "frost", "fire", "lightning", "fear",
- "illumination", "polymorphing", "conjuration",
- "paralyzing");
- addRule("<spell-2>", "<spell2-type> detecting");
- addRule("<spell2-type>", "magic", "enemy", "secret door/trap");
+ addRule("<spell-1>",
+ "frost", "fire", "lightning", "fear",
+ "illumination", "polymorphing", "conjuration", "paralyzing");
+ addRule("<spell-2>",
+ "<spell2-type> detecting");
+ addRule("<spell2-type>",
+ "magic", "enemy", "secret door/trap");
}
}
diff --git a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java b/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java
index 6f96874..1939c5e 100644
--- a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java
+++ b/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java
@@ -20,7 +20,6 @@ import bjc.utils.gui.awt.SimpleFileDialog;
*
*/
public class GrammarReaderApp {
-
/**
* Main method of class
*
@@ -29,9 +28,9 @@ public class GrammarReaderApp {
*/
public static void main(String[] args) {
try {
- UIManager.setLookAndFeel(
- UIManager.getSystemLookAndFeelClassName());
- } catch (ClassNotFoundException | InstantiationException
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException
+ | InstantiationException
| IllegalAccessException
| UnsupportedLookAndFeelException e) {
e.printStackTrace();
@@ -43,8 +42,7 @@ public class GrammarReaderApp {
@SuppressWarnings("null")
private static void doSingleFile() {
- File gramFile = SimpleFileDialog.getOpenFile(null,
- "Choose Grammar File", ".gram");
+ File gramFile = SimpleFileDialog.getOpenFile(null, "Choose Grammar File", ".gram");
WeightedGrammar<String> grammar = null;
@@ -63,7 +61,8 @@ public class GrammarReaderApp {
return leftString.compareTo(rightString);
});
- initRule = SimpleDialogs.getChoice(null, "Pick a initial rule",
+ initRule = SimpleDialogs.getChoice(null,
+ "Pick a initial rule",
"Pick a initial rule to generate choices from",
grammar.getRuleNames().toArray(new String[0]));
} else {
@@ -74,8 +73,7 @@ public class GrammarReaderApp {
"Enter number of repetitions",
"Enter the number of items to generate from the rule");
- File outputFile = SimpleFileDialog.getSaveFile(null,
- "Choose Grammar File");
+ File outputFile = SimpleFileDialog.getSaveFile(null, "Choose Grammar File");
PrintStream outputStream = null;
@@ -86,8 +84,7 @@ public class GrammarReaderApp {
}
for (int i = 0; i < count; i++) {
- String ruleResult = ListUtils.collapseTokens(
- grammar.generateListValues(initRule, " "));
+ String ruleResult = ListUtils.collapseTokens(grammar.generateListValues(initRule, " "));
outputStream.println(ruleResult.replaceAll("\\s+", " "));
}
diff --git a/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java b/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java
index af03da0..84fee01 100644
--- a/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java
+++ b/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java
@@ -28,22 +28,18 @@ public class RBGrammarReader {
state.startNewSubgrammar();
});
- reader.addPragma("load-sub-grammar",
- RBGrammarReader::loadSubGrammar);
+ reader.addPragma("load-sub-grammar", RBGrammarReader::loadSubGrammar);
reader.addPragma("save-sub-grammar", RBGrammarReader::saveGrammar);
+ reader.addPragma("edit-sub-grammar", RBGrammarReader::editSubGrammar);
+ reader.addPragma("remove-sub-grammar", RBGrammarReader::removeSubGrammar);
- reader.addPragma("edit-sub-grammar",
- RBGrammarReader::editSubGrammar);
reader.addPragma("edit-parent", (tokenizer, state) -> {
state.editParent();
});
reader.addPragma("promote", RBGrammarReader::promoteGrammar);
- reader.addPragma("subordinate",
- RBGrammarReader::subordinateGrammar);
+ reader.addPragma("subordinate", RBGrammarReader::subordinateGrammar);
- reader.addPragma("remove-sub-grammar",
- RBGrammarReader::removeSubGrammar);
}
private static void debugGrammar(ReaderState state) {
@@ -56,15 +52,13 @@ public class RBGrammarReader {
System.out.println();
}
- private static void doCase(FunctionalStringTokenizer tokenizer,
- ReaderState state) {
+ private static void doCase(FunctionalStringTokenizer tokenizer, ReaderState state) {
int ruleProbability = readOptionalProbability(tokenizer, state);
state.addCase(ruleProbability, tokenizer.toList());
}
- private static void editSubGrammar(FunctionalStringTokenizer tokenizer,
- ReaderState state) {
+ private static void editSubGrammar(FunctionalStringTokenizer tokenizer, ReaderState state) {
String subgrammarName = tokenizer.nextToken();
state.editSubgrammar(subgrammarName);
@@ -82,29 +76,24 @@ public class RBGrammarReader {
* If something goes wrong during file reading
*
*/
- public static WeightedGrammar<String> fromPath(Path inputPath)
- throws IOException {
+ public static WeightedGrammar<String> fromPath(Path inputPath) throws IOException {
ReaderState initialState = new ReaderState(inputPath);
- try (FileInputStream inputStream = new FileInputStream(
- inputPath.toFile())) {
- return reader.fromStream(inputStream, initialState)
- .getGrammar();
+ try (FileInputStream inputStream = new FileInputStream(inputPath.toFile())) {
+ return reader.fromStream(inputStream, initialState).getGrammar();
} catch (IOException ioex) {
throw ioex;
}
}
- private static void importRule(FunctionalStringTokenizer tokenizer,
- ReaderState state) {
+ private static void importRule(FunctionalStringTokenizer tokenizer, ReaderState state) {
String ruleName = tokenizer.nextToken();
String subgrammarName = tokenizer.nextToken();
state.addGrammarAlias(subgrammarName, ruleName);
}
- private static void initialRule(FunctionalStringTokenizer tokenizer,
- ReaderState state) {
+ private static void initialRule(FunctionalStringTokenizer tokenizer, ReaderState state) {
String initialRuleName = tokenizer.nextToken();
state.setInitialRule(initialRuleName);
@@ -131,35 +120,30 @@ public class RBGrammarReader {
reader.addPragma("suffix-with", RBGrammarReader::suffixRule);
}
- private static void loadSubGrammar(FunctionalStringTokenizer stk,
- ReaderState rs) {
+ private static void loadSubGrammar(FunctionalStringTokenizer stk, ReaderState rs) {
String subgrammarName = stk.nextToken();
String subgrammarPath = stk.nextToken();
rs.loadSubgrammar(subgrammarName, subgrammarPath);
}
- private static void prefixRule(FunctionalStringTokenizer tokenizer,
- ReaderState state) {
+ private static void prefixRule(FunctionalStringTokenizer tokenizer, ReaderState state) {
String ruleName = tokenizer.nextToken();
String prefixToken = tokenizer.nextToken();
- int additionalProbability = readOptionalProbability(tokenizer,
- state);
+ int additionalProbability = readOptionalProbability(tokenizer, state);
state.prefixRule(ruleName, prefixToken, additionalProbability);
}
- private static void promoteGrammar(FunctionalStringTokenizer tokenizer,
- ReaderState state) {
+ private static void promoteGrammar(FunctionalStringTokenizer tokenizer, ReaderState state) {
String subgrammarName = tokenizer.nextToken();
String subordinateName = tokenizer.nextToken();
state.promoteGrammar(subgrammarName, subordinateName);
}
- private static int readOptionalProbability(
- FunctionalStringTokenizer tokenizer, ReaderState state) {
+ private static int readOptionalProbability(FunctionalStringTokenizer tokenizer, ReaderState state) {
if (state.isUniform()) {
return 0;
}
@@ -167,22 +151,19 @@ public class RBGrammarReader {
return Integer.parseInt(tokenizer.nextToken());
}
- private static void removeRule(FunctionalStringTokenizer tokenizer,
- ReaderState state) {
+ private static void removeRule(FunctionalStringTokenizer tokenizer, ReaderState state) {
String ruleName = tokenizer.nextToken();
state.deleteRule(ruleName);
}
- private static void removeSubGrammar(
- FunctionalStringTokenizer tokenizer, ReaderState state) {
+ private static void removeSubGrammar(FunctionalStringTokenizer tokenizer, ReaderState state) {
String subgrammarName = tokenizer.nextToken();
state.deleteSubgrammar(subgrammarName);
}
- private static void saveGrammar(FunctionalStringTokenizer tokenizer,
- ReaderState state) {
+ private static void saveGrammar(FunctionalStringTokenizer tokenizer, ReaderState state) {
String subgrammarName = tokenizer.nextToken();
state.saveSubgrammar(subgrammarName);
@@ -208,20 +189,17 @@ public class RBGrammarReader {
});
}
- private static void subordinateGrammar(
- FunctionalStringTokenizer tokenizer, ReaderState state) {
+ private static void subordinateGrammar(FunctionalStringTokenizer tokenizer, ReaderState state) {
String grammarName = tokenizer.nextToken();
state.subordinateGrammar(grammarName);
}
- private static void suffixRule(FunctionalStringTokenizer tokenizer,
- ReaderState state) {
+ private static void suffixRule(FunctionalStringTokenizer tokenizer, ReaderState state) {
String ruleName = tokenizer.nextToken();
String suffixToken = tokenizer.nextToken();
- int additionalProbability = readOptionalProbability(tokenizer,
- state);
+ int additionalProbability = readOptionalProbability(tokenizer, state);
state.suffixRule(ruleName, suffixToken, additionalProbability);
}
diff --git a/RGens/src/main/java/bjc/RGens/parser/ReaderState.java b/RGens/src/main/java/bjc/RGens/parser/ReaderState.java
index 680f67b..b455844 100644
--- a/RGens/src/main/java/bjc/RGens/parser/ReaderState.java
+++ b/RGens/src/main/java/bjc/RGens/parser/ReaderState.java
@@ -65,8 +65,7 @@ public class ReaderState {
* @param newWorkingGrammar
* The new grammar to use
*/
- public void setCurrentGrammar(
- WeightedGrammar<String> newWorkingGrammar) {
+ public void setCurrentGrammar(WeightedGrammar<String> newWorkingGrammar) {
currentGrammar = newWorkingGrammar;
}
@@ -121,8 +120,7 @@ public class ReaderState {
* @param ruleParts
* The parts that make up this case
*/
- public void addCase(int ruleProbability,
- IList<String> ruleParts) {
+ public void addCase(int ruleProbability, IList<String> ruleParts) {
currentGrammar.addCase(currentRule, ruleProbability, ruleParts);
}
@@ -133,8 +131,7 @@ public class ReaderState {
* The name of the subgrammar to edit
*/
public void editSubgrammar(String subgrammarName) {
- WeightedGrammar<String> subgrammar = currentGrammar
- .getSubgrammar(subgrammarName);
+ WeightedGrammar<String> subgrammar = currentGrammar.getSubgrammar(subgrammarName);
grammarStack.push(currentGrammar);
@@ -168,8 +165,7 @@ public class ReaderState {
* @param subgrammarAlias
* The name of the alias for the subgrammar
*/
- public void addGrammarAlias(String subgrammarName,
- String subgrammarAlias) {
+ public void addGrammarAlias(String subgrammarName, String subgrammarAlias) {
currentGrammar.addGrammarAlias(subgrammarName, subgrammarAlias);
}