diff options
Diffstat (limited to 'RGens/src/main/java/bjc/rgens/newparser/RGrammarTest.java')
| -rw-r--r-- | RGens/src/main/java/bjc/rgens/newparser/RGrammarTest.java | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/RGens/src/main/java/bjc/rgens/newparser/RGrammarTest.java b/RGens/src/main/java/bjc/rgens/newparser/RGrammarTest.java index 7bfd762..97440f6 100644 --- a/RGens/src/main/java/bjc/rgens/newparser/RGrammarTest.java +++ b/RGens/src/main/java/bjc/rgens/newparser/RGrammarTest.java @@ -3,6 +3,7 @@ package bjc.rgens.newparser; import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; +import java.nio.file.Path; import java.nio.file.Paths; /** @@ -22,22 +23,32 @@ public class RGrammarTest { URL rsc = RGrammarTest.class.getResource("/server-config-sample.cfg"); try { - RGrammarSet gramSet = RGrammarSet.fromConfigFile(Paths.get(rsc.toURI())); + /* Load a grammar set. */ + Path cfgPath = Paths.get(rsc.toURI()); + RGrammarSet gramSet = RGrammarSet.fromConfigFile(cfgPath); + /* Generate rule suggestions for all the grammars in the set. */ for (String gramName : gramSet.getGrammars()) { gramSet.getGrammar(gramName).generateSuggestions(); } + /* Generate for each exported rule. */ for (String exportName : gramSet.getExportedRules()) { RGrammar grammar = gramSet.getExportSource(exportName); for (int i = 0; i < 10; i++) { try { - grammar.generate(exportName); + System.out.printf("Generating for exported rule '%s'\n", exportName); + String res = grammar.generate(exportName); + System.out.printf("\tContents: %s\n", res); } catch (GrammarException gex) { - System.out.println("Error in exported rule " + exportName - + " (loaded from " - + gramSet.loadedFrom(gramSet.exportedFrom(exportName))); + /* + * Print out errors with generation. + */ + String fmt = "Error in exported rule '%s' (loaded from '%s')\n"; + String loadSrc = gramSet.loadedFrom(gramSet.exportedFrom(exportName)); + + System.out.printf(fmt, exportName, loadSrc); System.out.println(); @@ -48,6 +59,7 @@ public class RGrammarTest { } } } + } catch (IOException ioex) { ioex.printStackTrace(); } catch (URISyntaxException urisex) { |
