summaryrefslogtreecommitdiff
path: root/RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-11-06 20:56:21 -0400
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-11-06 20:56:21 -0400
commitcba5ae6bc285439593f4e847c0d3b32e8e608ec8 (patch)
tree7a5b6f6ca85aa9984730787d4e20fe38aec0a197 /RGens/src/main/java/bjc/rgens/newparser/RGrammarBuilder.java
parent8d7b542ba7182b701a75a0fd5550e68f421ea696 (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.java21
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);
+
+ }
}