diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2017-11-06 20:56:21 -0400 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2017-11-06 20:56:21 -0400 |
| commit | cba5ae6bc285439593f4e847c0d3b32e8e608ec8 (patch) | |
| tree | 7a5b6f6ca85aa9984730787d4e20fe38aec0a197 /RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java | |
| parent | 8d7b542ba7182b701a75a0fd5550e68f421ea696 (diff) | |
Minor source tweaks
More attempted spacing tweaks and stuff
Diffstat (limited to 'RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java')
| -rw-r--r-- | RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java b/RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java index a6b21a5..9b89cdd 100644 --- a/RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java +++ b/RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java @@ -221,4 +221,25 @@ public class RGrammarBuilder { rules.get(ruleName).replaceCases(newCaseList); } + + public void regexizeRule(String rule, String pattern) { + if (rule == null) { + throw new NullPointerException("rule must not be null"); + } else if(pattern == null) { + throw new NullPointerException("pattern must not be null"); + } else if (rule.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } + + IList<RuleCase> caseList = rules.get(rule).getCases(); + + IList<RuleCase> newCaseList = new FunctionalList<>(); + + for(RuleCase cse : caseList) { + newCaseList.add(new RegexRuleCase(cse.getElements(), pattern)); + } + + rules.get(rule).replaceCases(newCaseList); + + } } |
