diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-07-20 12:51:08 -0300 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-07-20 12:51:08 -0300 |
| commit | 93884fa70a1fdcef373353639f10cec7aee7cec0 (patch) | |
| tree | 5e74b661938fc4deeff257a17bcc9aff38d656a3 /src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java | |
| parent | 5a531b2ae8ea61960d2cffc6968d1fb87206941e (diff) | |
Update
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java')
| -rw-r--r-- | src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java b/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java index 19c1e2c..2193b3c 100644 --- a/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java +++ b/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java @@ -36,7 +36,12 @@ public abstract class VariableElement { VariableElement prevElement = null; - for (String part : parts) { + for (String npart : parts) { + // @HACK + // This is so that inline refs to hypenized rule names + // work. Not sure this is a good impl. strategy + String part = npart.replaceAll("\\(|\\)", ""); + VariableElement elm = null; if(part.startsWith("$")) { @@ -47,7 +52,7 @@ public abstract class VariableElement { elm = new ARefVariableElement(part.substring(1)); } else if (part.startsWith("%")) { - elm = new RRefVariableElement(forbidSpaces, part.substring(1)); + elm = new RRefVariableElement(forbidSpaces, String.format("[%s]", part.substring(1))); } else if (part.startsWith("/")) { throw new GrammarException("Template variables aren't implemented yet"); } else { @@ -55,7 +60,11 @@ public abstract class VariableElement { /* Aggregate chain literals together */ ((LiteralVariableElement)prevElement).val += part; } else { - elm = new LiteralVariableElement(forbidSpaces, part); + if(part.contains(" ")) { + elm = new LiteralVariableElement(false, part); + } else { + elm = new LiteralVariableElement(true, part); + } } } |
