diff options
Diffstat (limited to 'src/main/java/bjc/rgens/parser/RGrammarTest.java')
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/RGrammarTest.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/bjc/rgens/parser/RGrammarTest.java b/src/main/java/bjc/rgens/parser/RGrammarTest.java index 25f76e7..8193fa3 100755 --- a/src/main/java/bjc/rgens/parser/RGrammarTest.java +++ b/src/main/java/bjc/rgens/parser/RGrammarTest.java @@ -1,10 +1,13 @@ package bjc.rgens.parser; +import bjc.rgens.parser.templates.GrammarTemplate; + 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; /** * Test for new grammar syntax. @@ -29,6 +32,10 @@ public class RGrammarTest { 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) { @@ -36,6 +43,26 @@ public class RGrammarTest { } } + 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.contents.toString(); + + 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()) { |
