diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-06-04 16:49:22 -0300 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-06-04 16:49:22 -0300 |
| commit | 899efcc5442804e312b6d98aa248ac3601da06d3 (patch) | |
| tree | bcab461c54260db7737db56b20661a9377e403cd /src/main/java/bjc/rgens/parser/elements/CaseElement.java | |
| parent | 3b760ca916c6a88265e348d77ee1f6497dace0a4 (diff) | |
Update
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/CaseElement.java')
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/elements/CaseElement.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/CaseElement.java b/src/main/java/bjc/rgens/parser/elements/CaseElement.java index f960c31..8f3a8d4 100755 --- a/src/main/java/bjc/rgens/parser/elements/CaseElement.java +++ b/src/main/java/bjc/rgens/parser/elements/CaseElement.java @@ -118,7 +118,6 @@ public abstract class CaseElement { } else if (specialBody.matches("empty")) { /* Literal blank, for empty cases. */ return new BlankCaseElement(); - } else if (specialBody.contains("|")) { } else { throw new IllegalArgumentException(String.format("Unknown special case part '%s'", specialBody)); } @@ -131,7 +130,15 @@ public abstract class CaseElement { return new RangeCaseElement(firstNum, secondNum); } else if(rawCase.contains("|")) { - return new InlineRuleCaseElement(specialBody.split("|")); + String[] elms = rawCase.split("\\|"); + + System.err.printf("\tTRACE: Split inline cases %s to ", rawCase); + for(String elm : elms) { + System.err.printf("%s, ", elm); + } + System.err.println(); + + return new InlineRuleCaseElement(elms); } else if(csepart.contains("$")) { /* * @NOTE @@ -147,7 +154,13 @@ public abstract class CaseElement { } else { return new NormalRuleReference(csepart); } - } else { + } else if(csepart.startsWith("%")) { + String rName = String.format("[%s]", csepart.substring(1)); + + System.err.printf("\tTRACE: short ref to %s (%s)\n", rName, csepart); + + return new NormalRuleReference(rName); + } else{ return new LiteralCaseElement(csepart); } } |
