summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/RGrammarFormatter.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-03 21:31:50 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-03 21:31:50 -0300
commit825d281097d821048f91eaac8dacf335365cb958 (patch)
treef01ac5f00b3411a12a2ba0845e02f177223328be /src/main/java/bjc/rgens/parser/RGrammarFormatter.java
parent53e859e1785c990c942ad315d36387b21ed018d0 (diff)
Weighting part 1
This re-adds the capability to weight rules. However, no syntax has yet been add to perform that rule weighting
Diffstat (limited to 'src/main/java/bjc/rgens/parser/RGrammarFormatter.java')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammarFormatter.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/main/java/bjc/rgens/parser/RGrammarFormatter.java b/src/main/java/bjc/rgens/parser/RGrammarFormatter.java
index a2454dc..7e058b0 100755
--- a/src/main/java/bjc/rgens/parser/RGrammarFormatter.java
+++ b/src/main/java/bjc/rgens/parser/RGrammarFormatter.java
@@ -1,6 +1,8 @@
package bjc.rgens.parser;
import bjc.rgens.parser.elements.CaseElement;
+
+import bjc.utils.data.IPair;
import bjc.utils.funcdata.IList;
import java.util.HashSet;
@@ -52,7 +54,7 @@ public class RGrammarFormatter {
/* Format a rule. */
private static void processRule(Rule rule, StringBuilder sb) {
- IList<RuleCase> cases = rule.getCases();
+ IList<IPair<Integer, RuleCase>> cases = rule.getCases();
StringBuilder ruleBuilder = new StringBuilder();
@@ -61,20 +63,21 @@ public class RGrammarFormatter {
int markerPos = ruleBuilder.length();
- processCase(cases.first(), ruleBuilder);
+ processCase(cases.first().getRight(), ruleBuilder);
sb.append(ruleBuilder.toString().trim());
ruleBuilder = new StringBuilder();
- for (RuleCase cse : cases.tail()) {
+ for (IPair<Integer, RuleCase> cse : cases.tail()) {
sb.append("\n\t");
for (int i = 8; i < markerPos; i++) {
ruleBuilder.append(" ");
}
- processCase(cse, ruleBuilder);
+ /* @TODO do this right, once we pick the syntax */
+ processCase(cse.getRight(), ruleBuilder);
sb.append(ruleBuilder.toString());