diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-06-05 12:12:08 -0300 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-06-05 12:12:08 -0300 |
| commit | eac274292f7053560d0f087acc182a5fcd86b162 (patch) | |
| tree | 00364fb0f4a50402ff2c18fe91446e4ec74ca147 /src/main/java/bjc/rgens/parser/elements/CaseElement.java | |
| parent | bb5d2256ba052af13a3d50f150b78c5762840449 (diff) | |
Minor bug-fixes
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/CaseElement.java')
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/elements/CaseElement.java | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/CaseElement.java b/src/main/java/bjc/rgens/parser/elements/CaseElement.java index 5263d03..d86d2d3 100755 --- a/src/main/java/bjc/rgens/parser/elements/CaseElement.java +++ b/src/main/java/bjc/rgens/parser/elements/CaseElement.java @@ -103,9 +103,9 @@ public abstract class CaseElement { /* Trim $ */ return new LitVariableCaseElement(parts[0].substring(1), parts[1]); - } else if (specialBody.matches("\\@\\S+=\\S+")) { - /* Handle rule variable definitions. */ - String[] parts = specialBody.split("="); + } else if (specialBody.matches("\\@\\S+:=\\S+")) { + /* Handle exhaustible rule variable definitions. */ + String[] parts = specialBody.split(":="); if (parts.length != 2) { String msg = "Rule variables must be a name and a definition, seperated by ="; @@ -114,9 +114,9 @@ public abstract class CaseElement { } /* Trim $ */ - return new RuleVariableCaseElement(parts[0].substring(1), parts[1], false); - } else if (specialBody.matches("\\@\\S+:=\\S+")) { - /* Handle exhaustible rule variable definitions. */ + return new RuleVariableCaseElement(parts[0].substring(1), parts[1], true); + } else if (specialBody.matches("\\@\\S+=\\S+")) { + /* Handle rule variable definitions. */ String[] parts = specialBody.split("="); if (parts.length != 2) { @@ -126,7 +126,7 @@ public abstract class CaseElement { } /* Trim $ */ - return new RuleVariableCaseElement(parts[0].substring(1), parts[1], true); + return new RuleVariableCaseElement(parts[0].substring(1), parts[1], false); } else if (specialBody.matches("empty")) { /* Literal blank, for empty cases. */ return new BlankCaseElement(); @@ -144,7 +144,7 @@ public abstract class CaseElement { } else if(rawCase.contains("|")) { String[] elms = rawCase.split("\\|"); - System.err.printf("\tTRACE: Split inline cases %s to ", rawCase); + System.err.printf("\t\tTRACE: Split inline cases %s to ", rawCase); for(String elm : elms) { System.err.printf("%s, ", elm); } @@ -165,14 +165,14 @@ public abstract class CaseElement { return new VariableRuleReference(csepart); } else if(csepart.contains("@")) { // Trim @ - return new RuleVarRefCaseElement(csepart.substring(1)); + return new RuleVarRefCaseElement(rawCase.substring(1)); } else { return new NormalRuleReference(csepart); } } else if(csepart.startsWith("%")) { String rName = String.format("[%s]", csepart.substring(1)); - System.err.printf("\tTRACE: short ref to %s (%s)\n", rName, csepart); + System.err.printf("\t\tTRACE: short ref to %s (%s)\n", rName, csepart); return new NormalRuleReference(rName); } else { |
