diff options
| author | student <student@student-OptiPlex-9020> | 2017-03-17 10:49:27 -0400 |
|---|---|---|
| committer | student <student@student-OptiPlex-9020> | 2017-03-17 10:49:27 -0400 |
| commit | 0ea49dd4a52358f053c9be7138c392b16de05899 (patch) | |
| tree | 802e275aaf279480ee8626136f56bfa1fbab6845 /RGens/src/main/java | |
| parent | 36cf3a0f0604ef43ce838ff6e9a7fc4e7c299522 (diff) | |
Move things around, and start on new parser.
Diffstat (limited to 'RGens/src/main/java')
| -rw-r--r-- | RGens/src/main/java/bjc/rgens/.DS_Store (renamed from RGens/src/main/java/bjc/RGens/.DS_Store) | bin | 6148 -> 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.java | 5 | ||||
| -rw-r--r-- | RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java | 7 | ||||
| -rw-r--r-- | RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java | 110 | ||||
| -rw-r--r-- | RGens/src/main/java/bjc/rgens/parser/.DS_Store (renamed from RGens/src/main/java/bjc/RGens/parser/.DS_Store) | bin | 6148 -> 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-x | RGens/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-x | RGens/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 Binary files differindex 918453d..918453d 100644 --- a/RGens/src/main/java/bjc/RGens/.DS_Store +++ b/RGens/src/main/java/bjc/rgens/.DS_Store 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 Binary files differindex 5008ddf..5008ddf 100644 --- a/RGens/src/main/java/bjc/RGens/parser/.DS_Store +++ b/RGens/src/main/java/bjc/rgens/parser/.DS_Store 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.*; |
