summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2019-12-17 20:20:21 -0500
committerbculkin2442 <bjculkin@mix.wvu.edu>2019-12-17 20:20:21 -0500
commit48f470774a734d2c9a53ad9502f78e2a557c356c (patch)
tree429981ca0de3fa66b5eaba1fde7c642c999df2a2
parent117546c65b44f2d6ee3040bd6109160f090508fa (diff)
Switch over ConditionalDirective
-rw-r--r--clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java7
-rw-r--r--clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java23
2 files changed, 19 insertions, 11 deletions
diff --git a/clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java b/clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java
index fae3aa6..92a7a63 100644
--- a/clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java
+++ b/clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java
@@ -380,7 +380,12 @@ public class CLFormatter {
}
public List<Edict> compile(Iterable<Decree> cltok) {
- return compile(cltok.iterator());
+ // Not 100% sure this is correct, but the tests are passing
+ if (cltok == null) return new ArrayList<>();
+
+ Iterator<Decree> it = cltok.iterator();
+
+ return compile(it);
}
public List<Edict> compile(Iterator<Decree> cltok) {
diff --git a/clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java b/clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java
index e481590..8047d6a 100644
--- a/clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java
+++ b/clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java
@@ -144,8 +144,8 @@ class ConditionalEdict implements Edict {
private boolean decrementIndex;
private CLValue index;
- private List<List<Decree>> clauses;
- private List<Decree> defClause;
+ private List<CLString> clauses;
+ private CLString defClause;
private CLFormatter formatter;
@@ -157,8 +157,11 @@ class ConditionalEdict implements Edict {
this.decrementIndex = decrementIndex;
this.index = index;
- this.clauses = clauses;
- this.defClause = defClause;
+ this.clauses = new ArrayList<>();
+ for (List<Decree> clause : clauses) {
+ this.clauses.add(new CLString(fmt.compile(clause)));
+ }
+ this.defClause = new CLString(fmt.compile(defClause));
this.formatter = fmt;
}
@@ -183,14 +186,14 @@ class ConditionalEdict implements Edict {
res = (Boolean) o;
}
- List<Decree> frmt;
+ CLString frmt;
if (res) {
frmt = clauses.get(1);
} else {
frmt = clauses.get(0);
}
- formatter.doFormatString(frmt, formCTX.writer, formCTX.items, false);
+ frmt.format(formCTX);
}
break;
case OUTPUT_TRUE:
@@ -211,7 +214,7 @@ class ConditionalEdict implements Edict {
}
if (res) {
- formatter.doFormatString(clauses.get(0), formCTX.writer, formCTX.items, false);
+ clauses.get(0).format(formCTX);
} else {
items.right();
}
@@ -241,12 +244,12 @@ class ConditionalEdict implements Edict {
if (clauses.size() == 0 || res < 0 || res >= clauses.size()) {
if (defClause != null) {
- formatter.doFormatString(defClause, formCTX.writer, items, false);
+ defClause.format(formCTX.writer, items);
}
} else {
- List<Decree> frmt = clauses.get(res);
+ CLString frmt = clauses.get(res);
- formatter.doFormatString(frmt, formCTX.writer, items, false);
+ frmt.format(formCTX.writer, items);
}
}
break;