diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-06-05 22:09:23 -0300 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-06-05 22:09:23 -0300 |
| commit | 05c9922b30cd0dcd2a452673c2e155215d074b19 (patch) | |
| tree | 80f2cc1cfd239761f3d74d20159f780c1673781b /src/main/java/bjc/rgens/parser/RGrammarTest.java | |
| parent | f25d1062a56a81b17348b799e6d4d7e1dc12a1cc (diff) | |
Templates pt. 3
Templates should now work, though there is no syntax to reference them
from rules yet
In addition, several internal things have been changed so as to improve
code quality
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()) { |
