summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/elements/VariableDefCaseElement.java
diff options
context:
space:
mode:
authorBen Culkin <scorpress@gmail.com>2020-10-06 19:16:26 -0400
committerBen Culkin <scorpress@gmail.com>2020-10-06 19:16:26 -0400
commite9e0ca7bfe722375e7ccb25d2bafbe395b6c6a59 (patch)
tree8e8e556724683d4d10d7da1f3e85705a50ae33c6 /src/main/java/bjc/rgens/parser/elements/VariableDefCaseElement.java
parenta3ea557c0b7204f56b1499687cc7f82c5b1677a5 (diff)
Info cleanup
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/VariableDefCaseElement.java')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/elements/VariableDefCaseElement.java41
1 files changed, 36 insertions, 5 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/VariableDefCaseElement.java b/src/main/java/bjc/rgens/parser/elements/VariableDefCaseElement.java
index 37a12b6..23659c7 100755
--- a/src/main/java/bjc/rgens/parser/elements/VariableDefCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/VariableDefCaseElement.java
@@ -2,6 +2,12 @@ package bjc.rgens.parser.elements;
import bjc.rgens.parser.GrammarException;
+/**
+ * Variable defining case element.
+ *
+ * @author Ben Culkin
+ *
+ */
public abstract class VariableDefCaseElement extends CaseElement {
/**
* The name of the variable this element defines.
@@ -13,6 +19,14 @@ public abstract class VariableDefCaseElement extends CaseElement {
*/
public final String varDef;
+ /**
+ * Create a variable defining case element.
+ *
+ * @param name
+ * The name of the variable.
+ * @param def
+ * The definition of the variable.
+ */
public VariableDefCaseElement(String name, String def) {
super(false);
@@ -51,16 +65,33 @@ public abstract class VariableDefCaseElement extends CaseElement {
return true;
}
- public static CaseElement parseVariable(String varName, String varDef, char op, boolean colon) {
- if(varName.startsWith("$")) {
+ /**
+ * Parse a variable reference.
+ *
+ * @param varName
+ * The variable name.
+ * @param varDef
+ * The variable definition.
+ * @param op
+ * Unused as of yet.
+ * @param colon
+ * Whether the colon was present in the declaration.
+ *
+ * @return A case element which declares the variable.
+ */
+ public static CaseElement parseVariable(String varName, String varDef, char op,
+ boolean colon) {
+ if (varName.startsWith("$")) {
// Handle normal/expanding variable definitions
- if(colon) return new ExpVariableCaseElement(varName.substring(1), varDef);
+ if (colon)
+ return new ExpVariableCaseElement(varName.substring(1), varDef);
return new LitVariableCaseElement(varName.substring(1), varDef);
- } else if(varName.startsWith("@")) {
+ } else if (varName.startsWith("@")) {
return new RuleVariableCaseElement(varName.substring(1), varDef, colon);
} else {
- throw new GrammarException("Unrecognized declaration sigil " + varName.charAt(0));
+ throw new GrammarException(
+ "Unrecognized declaration sigil " + varName.charAt(0));
}
}
}