From 8062cff63f864178a2a73650870362871bc25224 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Mon, 4 Jun 2018 22:19:21 -0300 Subject: Exhaustion pt. 2 There is now syntax for rule references. Use @ instead of $, and use := to indicate you want exhaustion enabled Use @ to refer to it --- .../rgens/parser/elements/VariableCaseElement.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java') diff --git a/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java b/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java index 3e691d9..63abe16 100755 --- a/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java +++ b/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java @@ -1,6 +1,11 @@ package bjc.rgens.parser.elements; public abstract class VariableCaseElement extends CaseElement { + public static enum VariableType { + NORMAL, + EXPAND, + RULE + } /** * The name of the variable this element defines. */ @@ -11,11 +16,15 @@ public abstract class VariableCaseElement extends CaseElement { */ public final String varDef; - public VariableCaseElement(String name, String def, boolean isExp) { - super(isExp ? ElementType.EXPVARDEF : ElementType.VARDEF); + public final VariableType varType; + + public VariableCaseElement(String name, String def, VariableType varType) { + super(ElementType.VARIABLE); varName = name; varDef = def; + + this.varType = varType; } @Override @@ -51,10 +60,10 @@ public abstract class VariableCaseElement extends CaseElement { @Override public String toString() { - if (type == ElementType.VARDEF) { - return String.format("{%s:=%s}", varName, varDef); + if (type == ElementType.VARIABLE) { + return String.format("{$%s:=%s}", varName, varDef); } else { - return String.format("{%s=%s}", varName, varDef); + return String.format("{$%s=%s}", varName, varDef); } } } -- cgit v1.2.3