summaryrefslogtreecommitdiff
path: root/src/main/java/bjc
diff options
context:
space:
mode:
authorBen Culkin <scorpress@gmail.com>2021-03-13 07:17:38 -0500
committerBen Culkin <scorpress@gmail.com>2021-03-13 07:17:38 -0500
commit5e1e3767b335479040e48ff57f1eeff8a8f0d0ef (patch)
treefc397299c29d2aeefdc94afa51de7d15d96173c5 /src/main/java/bjc
parent768aacdf6e02ad39b8a26a88cb64670235378e1a (diff)
Rearrange some things
This moves some documentation to a specific docs folder, as well as creating a new examples folder, and putting the two pieces of example code into there
Diffstat (limited to 'src/main/java/bjc')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammarTest.java144
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/new-syntax.txt13
-rwxr-xr-xsrc/main/java/bjc/rgens/text/markov/TextGenerator.java75
3 files changed, 0 insertions, 232 deletions
diff --git a/src/main/java/bjc/rgens/parser/RGrammarTest.java b/src/main/java/bjc/rgens/parser/RGrammarTest.java
deleted file mode 100755
index 605fc5b..0000000
--- a/src/main/java/bjc/rgens/parser/RGrammarTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package bjc.rgens.parser;
-
-import static bjc.rgens.parser.RGrammarLogging.error;
-import static bjc.rgens.parser.RGrammarLogging.perf;
-
-import bjc.data.Tree;
-import bjc.data.SimpleTree;
-
-import java.io.IOException;
-
-import java.net.URISyntaxException;
-import java.net.URL;
-
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import java.util.Random;
-
-import bjc.rgens.parser.templates.GrammarTemplate;
-
-/**
- * Test for new grammar syntax.
- *
- * @author EVE
- */
-public class RGrammarTest {
- /**
- * Main method.
- *
- * @param args
- * Unused CLI args.
- */
- public static void main(String[] args) {
- URL rsc = RGrammarTest.class.getResource("/server-config-sample.gcfg");
-
- try {
- LoadOptions lopts = new LoadOptions();
-
- // Set up load options
- lopts.doPerf = true;
- lopts.doDebug = false;
- lopts.doTrace = false;
-
- lopts.defName = "default";
-
- /* Load a grammar set. */
- Path cfgPath = Paths.get(rsc.toURI());
-
- String msg = String.format("INFO: Loading config file %s", cfgPath);
- Tree<String> errTree = new SimpleTree<>(msg);
-
- ConfigSet cfgSet = ConfigLoader.fromConfigFile(cfgPath, lopts, errTree);
-
- System.err.print(errTree);
-
- for(RGrammarSet gramSet : cfgSet.grammars.values()) {
- testGrammarSet(gramSet);
- }
-
- for(GrammarTemplate template : cfgSet.templates.values()) {
- testTemplate(template, cfgSet.grammars.get("default"));
- }
- } catch (IOException ioex) {
- ioex.printStackTrace();
- } catch (URISyntaxException urisex) {
- urisex.printStackTrace();
- }
- }
-
- private static void testTemplate(GrammarTemplate template, RGrammarSet set) {
- System.out.printf("Generating for template %s\n", template);
-
- Random rnd = new Random();
-
- for(int i = 0; i < 10; i++) {
- GenerationState state = GenerationState.fromGrammar(rnd, set.exportGrammar);
-
- template.generate(state);
-
- String res = state.getContents();
-
- if(res.length() > 120) {
- System.out.printf("\t\n\tContents: %s\n\t\n", res);
- } else {
- System.out.printf("\tContents: %s\n", res);
- }
- }
- }
-
- private static void testGrammarSet(RGrammarSet gramSet) {
- /* Generate rule suggestions for all the grammars in the set. */
- for (String gramName : gramSet.getGrammars()) {
- long startSuggTime = System.nanoTime();
-
- gramSet.getGrammar(gramName).generateSuggestions();
-
- long endSuggTime = System.nanoTime();
-
- long suggDur = endSuggTime - startSuggTime;
-
- perf("Generated rule suggestions for %s in %d ns (%f s)", gramName, suggDur, suggDur / 1000000000.0);
- }
-
- System.err.printf("\n\n");
-
- /* Generate for each exported rule. */
- for (String exportName : gramSet.getExportedRules()) {
- /* Where we loaded the rule from. */
- String loadSrc = gramSet.loadedFrom(gramSet.exportedFrom(exportName));
-
- System.out.println();
- System.out.printf("Generating for exported rule '%s' from file '%s'\n", exportName, loadSrc);
-
- RGrammar grammar = gramSet.getExportSource(exportName);
- long startGenTime = System.nanoTime();
- for (int i = 0; i < 100; i++) {
- try {
- String res = grammar.generate(exportName);
- if(exportName.contains("+")) res = res.replaceAll("\\s+", "");
-
- if(res.length() > 120) {
- System.out.printf("\t\n\tContents: %s\n\t\n", res);
- } else {
- System.out.printf("\tContents: %s\n", res);
- }
- } catch (GrammarException gex) {
- /* Print out errors with generation. */
- String fmt = "Exported rule %s from %s failed (loaded from '%s')";
-
- System.out.printf("ERROR: " + fmt, exportName, grammar.name, loadSrc);
- System.out.println();
- System.out.println();
-
- error(gex, fmt, exportName, grammar.name, loadSrc);
- }
- }
- long endGenTime = System.nanoTime();
-
- long genDur = endGenTime - startGenTime;
-
- perf("Generated %s 100 times in %d ns (%f s)", exportName, genDur, genDur / 1000000000.0);
- }
- }
-}
diff --git a/src/main/java/bjc/rgens/parser/new-syntax.txt b/src/main/java/bjc/rgens/parser/new-syntax.txt
deleted file mode 100755
index f6578b4..0000000
--- a/src/main/java/bjc/rgens/parser/new-syntax.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-[grammar] → ([block] ( / \n\.\n ? / [block])*) ?
-
-[block] → [pragma - block]
-→ [rule - block]
-→ [where - block]
-
-[pragma - block] → [pragma] ( / \n( ? !\t) / [pragma])*
-
-[rule - block] → [rule - decl] [rule - case] ( / \n\t / [rule - case])*
-
-[where - block] → where / \n\t / ([rule - block] / \n\t / ) + in / \n\t / [rule - block]
-
-[pragma] → pragma [pragma - name] [pragma - body]
diff --git a/src/main/java/bjc/rgens/text/markov/TextGenerator.java b/src/main/java/bjc/rgens/text/markov/TextGenerator.java
deleted file mode 100755
index 22af52e..0000000
--- a/src/main/java/bjc/rgens/text/markov/TextGenerator.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package bjc.rgens.text.markov;
-
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-
-/**
- * Generate text from a markov model of an input text
- *
- * @author ben
- *
- */
-public class TextGenerator {
- /**
- * Main method.
- *
- * @param args
- * When used with three arguments, the first represents the k-order
- * of the Markov objects. The second represents the number of
- * characters to print out. The third represents the file to be
- * read.
- *
- * When used with two arguments, the first represents the k-order
- * of the Markov objects, and the second represents the file to be
- * read. The generated text will be the same number of characters
- * as the original file.
- */
- public static void main(String[] args) {
- int k = 0;
- int M = 0;
-
- String file = "";
- StringBuilder text = new StringBuilder();
-
- if (args.length == 3) {
- k = Integer.parseInt(args[0]);
- M = Integer.parseInt(args[1]);
-
- file = args[2];
- } else if (args.length == 2) {
- k = Integer.parseInt(args[0]);
-
- file = args[1];
- } else {
- System.out.println("\nUsage: java TextGenerator k M file");
- System.out.println("where k is the markov order, M is the number");
- System.out.println("of characters to be printed, and file is the");
- System.out.println("name of the file to print from. M may be left out.\n");
- System.exit(1);
- }
-
- StandaloneMarkov markov = null;
-
- try (FileReader reader = new FileReader(file)) {
- markov = StandaloneMarkov.generateMarkovMap(k, reader);
-
- String generatedText = markov.generateTextFromMarkov(M);
- String desiredText = generatedText.substring(0, Math.min(M, text.length()));
-
- System.out.println(desiredText);
- } catch (FileNotFoundException e) {
- System.out.println("File not found.");
-
- e.printStackTrace();
-
- System.exit(1);
- } catch (IOException ioex) {
- System.out.println("IOException");
-
- ioex.printStackTrace();
-
- System.exit(1);
- }
- }
-}