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/bjc/rgens/parser/GrammarReaderCLI.java | |
| parent | 36cf3a0f0604ef43ce838ff6e9a7fc4e7c299522 (diff) | |
Move things around, and start on new parser.
Diffstat (limited to 'RGens/src/main/java/bjc/rgens/parser/GrammarReaderCLI.java')
| -rw-r--r-- | RGens/src/main/java/bjc/rgens/parser/GrammarReaderCLI.java | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/RGens/src/main/java/bjc/rgens/parser/GrammarReaderCLI.java b/RGens/src/main/java/bjc/rgens/parser/GrammarReaderCLI.java new file mode 100644 index 0000000..b8eac35 --- /dev/null +++ b/RGens/src/main/java/bjc/rgens/parser/GrammarReaderCLI.java @@ -0,0 +1,61 @@ +package bjc.rgens.parser; + +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Paths; + +import bjc.utils.funcutils.ListUtils; +import bjc.utils.gen.WeightedGrammar; + +/** + * App that reads a grammar from a file and generates results + * + * @author ben + * + */ +public class GrammarReaderCLI { + private static WeightedGrammar<String> grammar = null; + + /** + * Main application method + * + * @param args + * CLI args + */ + public static void main(String[] args) { + if (args.length == 0) { + GrammarReaderApp.main(args); + } else { + String fName = args[0]; + + if (fName.equalsIgnoreCase("--help")) { + System.out.println( + "Usage: java -jar GrammarReader.jar <file-name> <init-rule> <num-res>"); + System.exit(0); + } + + String ruleName = args[1]; + + try (FileInputStream fStream = new FileInputStream(fName)) { + grammar = RBGrammarReader.fromPath(Paths.get(fName, "")); + } catch (IOException e) { + e.printStackTrace(); + } + + if (ruleName.equalsIgnoreCase("--list-rules")) { + grammar.getRuleNames().forEach(System.out::println); + + System.exit(0); + } + + int rCount = Integer.parseInt(args[2]); + + for (int i = 0; i < rCount; i++) { + String ruleResult = ListUtils.collapseTokens( + grammar.generateListValues(ruleName, " ")); + + System.out.println(ruleResult.replaceAll("\\s+", " ")); + } + } + } +} |
