From 5c416488ef63b5004ca424de56894eb17712f116 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Sun, 3 Jun 2018 23:59:30 -0300 Subject: Add recurrance limit This controls the number of times a rule can be entered into during a single generations, and is set to 5 by default --- src/main/java/bjc/rgens/parser/RGrammarBuilder.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/main/java/bjc/rgens/parser/RGrammarBuilder.java') diff --git a/src/main/java/bjc/rgens/parser/RGrammarBuilder.java b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java index 047567d..bc93fa6 100755 --- a/src/main/java/bjc/rgens/parser/RGrammarBuilder.java +++ b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java @@ -275,6 +275,17 @@ public class RGrammarBuilder { rules.get(ruleName).replaceCases(newCaseList); } + public void setRuleRecur(String ruleName, int recurLimit) { + if (ruleName == null) { + throw new NullPointerException("ruleName must not be null"); + } else if (ruleName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } else if (!rules.containsKey(ruleName)) { + throw new IllegalArgumentException(String.format("The rule '%s' doesn't exist", ruleName)); + } + + rules.get(ruleName).recurLimit = recurLimit; + } /* * @TODO * -- cgit v1.2.3