summaryrefslogtreecommitdiff
path: root/RGens/src
diff options
context:
space:
mode:
authorstudent <student@student-OptiPlex-9020>2017-03-17 10:49:27 -0400
committerstudent <student@student-OptiPlex-9020>2017-03-17 10:49:27 -0400
commit0ea49dd4a52358f053c9be7138c392b16de05899 (patch)
tree802e275aaf279480ee8626136f56bfa1fbab6845 /RGens/src
parent36cf3a0f0604ef43ce838ff6e9a7fc4e7c299522 (diff)
Move things around, and start on new parser.
Diffstat (limited to 'RGens/src')
-rw-r--r--RGens/src/main/java/bjc/rgens/.DS_Store (renamed from RGens/src/main/java/bjc/RGens/.DS_Store)bin6148 -> 6148 bytes
-rw-r--r--RGens/src/main/java/bjc/rgens/ZadronsPouch.java (renamed from RGens/src/main/java/bjc/RGens/ZadronsPouch.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/gui/GrammarStudio.java (renamed from RGens/src/main/java/bjc/RGens/gui/GrammarStudio.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/gui/GrammarStudioFrame.java (renamed from RGens/src/main/java/bjc/RGens/gui/GrammarStudioFrame.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/newparser/RGrammar.java5
-rw-r--r--RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java7
-rw-r--r--RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java110
-rw-r--r--RGens/src/main/java/bjc/rgens/parser/.DS_Store (renamed from RGens/src/main/java/bjc/RGens/parser/.DS_Store)bin6148 -> 6148 bytes
-rw-r--r--RGens/src/main/java/bjc/rgens/parser/GrammarReaderApp.java (renamed from RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/parser/GrammarReaderCLI.java (renamed from RGens/src/main/java/bjc/RGens/parser/GrammarReaderCLI.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/parser/PragmaErrorException.java (renamed from RGens/src/main/java/bjc/RGens/parser/PragmaErrorException.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/parser/RBGrammarReader.java (renamed from RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/parser/ReaderState.java (renamed from RGens/src/main/java/bjc/RGens/parser/ReaderState.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/server/CLIArgsParser.java (renamed from RGens/src/main/java/bjc/RGens/server/CLIArgsParser.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/server/GrammarServer.java (renamed from RGens/src/main/java/bjc/RGens/server/GrammarServer.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/server/GrammarServerEngine.java (renamed from RGens/src/main/java/bjc/RGens/server/GrammarServerEngine.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/server/ReaderState.java (renamed from RGens/src/main/java/bjc/RGens/server/ReaderState.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/server/ServerGrammarReader.java (renamed from RGens/src/main/java/bjc/RGens/server/ServerGrammarReader.java)2
-rwxr-xr-xRGens/src/main/java/bjc/rgens/text/markov/Markov.java (renamed from RGens/src/main/java/bjc/RGens/text/markov/Markov.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java (renamed from RGens/src/main/java/bjc/RGens/text/markov/StandaloneMarkov.java)2
-rw-r--r--RGens/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java (renamed from RGens/src/main/java/bjc/RGens/text/markov/StandaloneTextGenerator.java)2
-rwxr-xr-xRGens/src/main/java/bjc/rgens/text/markov/TextGenerator.java (renamed from RGens/src/main/java/bjc/RGens/text/markov/TextGenerator.java)2
22 files changed, 139 insertions, 17 deletions
diff --git a/RGens/src/main/java/bjc/RGens/.DS_Store b/RGens/src/main/java/bjc/rgens/.DS_Store
index 918453d..918453d 100644
--- a/RGens/src/main/java/bjc/RGens/.DS_Store
+++ b/RGens/src/main/java/bjc/rgens/.DS_Store
Binary files differ
diff --git a/RGens/src/main/java/bjc/RGens/ZadronsPouch.java b/RGens/src/main/java/bjc/rgens/ZadronsPouch.java
index b807945..7160bdd 100644
--- a/RGens/src/main/java/bjc/RGens/ZadronsPouch.java
+++ b/RGens/src/main/java/bjc/rgens/ZadronsPouch.java
@@ -1,4 +1,4 @@
-package bjc.RGens;
+package bjc.rgens;
import bjc.utils.funcdata.FunctionalStringTokenizer;
import bjc.utils.funcdata.IList;
diff --git a/RGens/src/main/java/bjc/RGens/gui/GrammarStudio.java b/RGens/src/main/java/bjc/rgens/gui/GrammarStudio.java
index ffc9be8..46f0d6e 100644
--- a/RGens/src/main/java/bjc/RGens/gui/GrammarStudio.java
+++ b/RGens/src/main/java/bjc/rgens/gui/GrammarStudio.java
@@ -1,4 +1,4 @@
-package bjc.RGens.gui;
+package bjc.rgens.gui;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
diff --git a/RGens/src/main/java/bjc/RGens/gui/GrammarStudioFrame.java b/RGens/src/main/java/bjc/rgens/gui/GrammarStudioFrame.java
index f671a87..17021fc 100644
--- a/RGens/src/main/java/bjc/RGens/gui/GrammarStudioFrame.java
+++ b/RGens/src/main/java/bjc/rgens/gui/GrammarStudioFrame.java
@@ -1,4 +1,4 @@
-package bjc.RGens.gui;
+package bjc.rgens.gui;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
diff --git a/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java b/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java
new file mode 100644
index 0000000..9b47bd6
--- /dev/null
+++ b/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java
@@ -0,0 +1,5 @@
+package bjc.rgens.newparser;
+
+public class RGrammar {
+
+}
diff --git a/RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java b/RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java
new file mode 100644
index 0000000..3b48a2a
--- /dev/null
+++ b/RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java
@@ -0,0 +1,7 @@
+package bjc.rgens.newparser;
+
+public class RGrammarBuilder {
+ public RGrammar toRGrammar() {
+ return null;
+ }
+}
diff --git a/RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java b/RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java
new file mode 100644
index 0000000..d60c6d4
--- /dev/null
+++ b/RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java
@@ -0,0 +1,110 @@
+package bjc.rgens.newparser;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+import java.io.StringReader;
+import java.util.Scanner;
+
+/**
+ * Reads {@link RGrammar} from a input stream.
+ *
+ * @author student
+ *
+ */
+public class RGrammarParser {
+ /**
+ * The exception thrown when something goes wrong while parsing a grammar.
+ *
+ * @author student
+ *
+ */
+ public static class GrammarException extends Exception {
+ /*
+ * Serialization ID.
+ */
+ private static final long serialVersionUID = -7287427479316953668L;
+
+ /**
+ * Create a new grammar exception with the specified message.
+ *
+ * @param msg
+ * The message for this exception.
+ */
+ public GrammarException(String msg) {
+ super(msg);
+ }
+
+ /**
+ * Create a new grammar exception with the specified message and cause.
+ *
+ * @param msg
+ * The message for this exception.
+ *
+ * @param cause
+ * The cause of this exception.
+ */
+ public GrammarException(String msg, Exception cause) {
+ super(msg, cause);
+ }
+ }
+
+ /**
+ * Read a {@link RGrammar} from an input stream.
+ *
+ * @param is
+ * The input stream to read from.
+ *
+ * @return The grammar represented by the stream.
+ *
+ * @throws GrammarException
+ * Thrown if the grammar has a syntax error.
+ */
+ public RGrammar readGrammar(InputStream is) throws GrammarException {
+ LineNumberReader lnReader = new LineNumberReader(new InputStreamReader(is));
+
+ try (Scanner scn = new Scanner(lnReader)) {
+ scn.useDelimiter("\\n\\.?\\n");
+
+ RGrammarBuilder build = new RGrammarBuilder();
+
+ while (scn.hasNext()) {
+ String block = scn.next();
+
+ if (block.startsWith("pragma")) {
+ handlePragmaBlock(block, build);
+ } else if (block.startsWith("[")) {
+ handleRuleBlock(block, build);
+ } else {
+ throw new GrammarException(String.format("Unknown block: %s", lnReader.getLineNumber(), block));
+ }
+ }
+ } catch (GrammarException gex) {
+ throw new GrammarException(String.format("Error at line %d", lnReader.getLineNumber()), gex);
+ }
+
+ return null;
+ }
+
+ private void handlePragmaBlock(String block, RGrammarBuilder build) throws GrammarException {
+ LineNumberReader lnReader = new LineNumberReader(new StringReader(block));
+
+ try (Scanner deblocker = new Scanner(lnReader)) {
+ deblocker.useDelimiter("\\n(?!\\t)");
+
+ while (deblocker.hasNext()) {
+ String pragma = deblocker.next();
+
+ if (!pragma.startsWith("pragma")) {
+ throw new GrammarException(String.format("Illegal line at line %d of pragma block: %s",
+ lnReader.getLineNumber(), pragma));
+ }
+ }
+ }
+ }
+
+ private void handleRuleBlock(String block, RGrammarBuilder build) {
+ // TODO Auto-generated method stub
+
+ }
+}
diff --git a/RGens/src/main/java/bjc/RGens/parser/.DS_Store b/RGens/src/main/java/bjc/rgens/parser/.DS_Store
index 5008ddf..5008ddf 100644
--- a/RGens/src/main/java/bjc/RGens/parser/.DS_Store
+++ b/RGens/src/main/java/bjc/rgens/parser/.DS_Store
Binary files differ
diff --git a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java b/RGens/src/main/java/bjc/rgens/parser/GrammarReaderApp.java
index 6a7eb26..b3beb81 100644
--- a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java
+++ b/RGens/src/main/java/bjc/rgens/parser/GrammarReaderApp.java
@@ -1,4 +1,4 @@
-package bjc.RGens.parser;
+package bjc.rgens.parser;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderCLI.java b/RGens/src/main/java/bjc/rgens/parser/GrammarReaderCLI.java
index 8d8a334..b8eac35 100644
--- a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderCLI.java
+++ b/RGens/src/main/java/bjc/rgens/parser/GrammarReaderCLI.java
@@ -1,4 +1,4 @@
-package bjc.RGens.parser;
+package bjc.rgens.parser;
import java.io.FileInputStream;
import java.io.IOException;
diff --git a/RGens/src/main/java/bjc/RGens/parser/PragmaErrorException.java b/RGens/src/main/java/bjc/rgens/parser/PragmaErrorException.java
index afa368b..05b71d3 100644
--- a/RGens/src/main/java/bjc/RGens/parser/PragmaErrorException.java
+++ b/RGens/src/main/java/bjc/rgens/parser/PragmaErrorException.java
@@ -1,4 +1,4 @@
-package bjc.RGens.parser;
+package bjc.rgens.parser;
/**
* Exception for error executing a pragma
diff --git a/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java b/RGens/src/main/java/bjc/rgens/parser/RBGrammarReader.java
index eca5f4f..7753d25 100644
--- a/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java
+++ b/RGens/src/main/java/bjc/rgens/parser/RBGrammarReader.java
@@ -1,4 +1,4 @@
-package bjc.RGens.parser;
+package bjc.rgens.parser;
import com.mifmif.common.regex.Generex;
diff --git a/RGens/src/main/java/bjc/RGens/parser/ReaderState.java b/RGens/src/main/java/bjc/rgens/parser/ReaderState.java
index 14d7ff8..89fde25 100644
--- a/RGens/src/main/java/bjc/RGens/parser/ReaderState.java
+++ b/RGens/src/main/java/bjc/rgens/parser/ReaderState.java
@@ -1,4 +1,4 @@
-package bjc.RGens.parser;
+package bjc.rgens.parser;
import java.io.IOException;
import java.nio.file.Path;
diff --git a/RGens/src/main/java/bjc/RGens/server/CLIArgsParser.java b/RGens/src/main/java/bjc/rgens/server/CLIArgsParser.java
index a39ce1d..fa0d399 100644
--- a/RGens/src/main/java/bjc/RGens/server/CLIArgsParser.java
+++ b/RGens/src/main/java/bjc/rgens/server/CLIArgsParser.java
@@ -1,4 +1,4 @@
-package bjc.RGens.server;
+package bjc.rgens.server;
import java.io.File;
diff --git a/RGens/src/main/java/bjc/RGens/server/GrammarServer.java b/RGens/src/main/java/bjc/rgens/server/GrammarServer.java
index 8c438c3..1a47de2 100644
--- a/RGens/src/main/java/bjc/RGens/server/GrammarServer.java
+++ b/RGens/src/main/java/bjc/rgens/server/GrammarServer.java
@@ -1,4 +1,4 @@
-package bjc.RGens.server;
+package bjc.rgens.server;
import bjc.utils.funcdata.FunctionalMap;
import bjc.utils.funcdata.IMap;
diff --git a/RGens/src/main/java/bjc/RGens/server/GrammarServerEngine.java b/RGens/src/main/java/bjc/rgens/server/GrammarServerEngine.java
index 0fe96d9..2f608ec 100644
--- a/RGens/src/main/java/bjc/RGens/server/GrammarServerEngine.java
+++ b/RGens/src/main/java/bjc/rgens/server/GrammarServerEngine.java
@@ -1,4 +1,4 @@
-package bjc.RGens.server;
+package bjc.rgens.server;
import java.io.File;
import java.io.FileInputStream;
diff --git a/RGens/src/main/java/bjc/RGens/server/ReaderState.java b/RGens/src/main/java/bjc/rgens/server/ReaderState.java
index 3a12ed6..3f5021e 100644
--- a/RGens/src/main/java/bjc/RGens/server/ReaderState.java
+++ b/RGens/src/main/java/bjc/rgens/server/ReaderState.java
@@ -1,4 +1,4 @@
-package bjc.RGens.server;
+package bjc.rgens.server;
import java.util.function.Supplier;
diff --git a/RGens/src/main/java/bjc/RGens/server/ServerGrammarReader.java b/RGens/src/main/java/bjc/rgens/server/ServerGrammarReader.java
index da42b36..77b1e8b 100644
--- a/RGens/src/main/java/bjc/RGens/server/ServerGrammarReader.java
+++ b/RGens/src/main/java/bjc/rgens/server/ServerGrammarReader.java
@@ -1,4 +1,4 @@
-package bjc.RGens.server;
+package bjc.rgens.server;
import com.mifmif.common.regex.Generex;
diff --git a/RGens/src/main/java/bjc/RGens/text/markov/Markov.java b/RGens/src/main/java/bjc/rgens/text/markov/Markov.java
index 7509a99..a07f44e 100755
--- a/RGens/src/main/java/bjc/RGens/text/markov/Markov.java
+++ b/RGens/src/main/java/bjc/rgens/text/markov/Markov.java
@@ -1,4 +1,4 @@
-package bjc.RGens.text.markov;
+package bjc.rgens.text.markov;
import java.util.Map.Entry;
import java.util.*;
diff --git a/RGens/src/main/java/bjc/RGens/text/markov/StandaloneMarkov.java b/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java
index c8670d4..0edaaa8 100644
--- a/RGens/src/main/java/bjc/RGens/text/markov/StandaloneMarkov.java
+++ b/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java
@@ -1,4 +1,4 @@
-package bjc.RGens.text.markov;
+package bjc.rgens.text.markov;
import java.util.Map;
diff --git a/RGens/src/main/java/bjc/RGens/text/markov/StandaloneTextGenerator.java b/RGens/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java
index 78369d0..92bc653 100644
--- a/RGens/src/main/java/bjc/RGens/text/markov/StandaloneTextGenerator.java
+++ b/RGens/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java
@@ -1,4 +1,4 @@
-package bjc.RGens.text.markov;
+package bjc.rgens.text.markov;
import java.io.IOException;
import java.io.Reader;
diff --git a/RGens/src/main/java/bjc/RGens/text/markov/TextGenerator.java b/RGens/src/main/java/bjc/rgens/text/markov/TextGenerator.java
index e8f9ea7..770acd9 100755
--- a/RGens/src/main/java/bjc/RGens/text/markov/TextGenerator.java
+++ b/RGens/src/main/java/bjc/rgens/text/markov/TextGenerator.java
@@ -1,4 +1,4 @@
-package bjc.RGens.text.markov;
+package bjc.rgens.text.markov;
import java.io.*;