diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-12-17 20:20:21 -0500 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-12-17 20:20:21 -0500 |
| commit | 48f470774a734d2c9a53ad9502f78e2a557c356c (patch) | |
| tree | 429981ca0de3fa66b5eaba1fde7c642c999df2a2 /clformat/src/main/java | |
| parent | 117546c65b44f2d6ee3040bd6109160f090508fa (diff) | |
Switch over ConditionalDirective
Diffstat (limited to 'clformat/src/main/java')
| -rw-r--r-- | clformat/src/main/java/bjc/utils/ioutils/format/CLFormatter.java | 7 | ||||
| -rw-r--r-- | clformat/src/main/java/bjc/utils/ioutils/format/directives/ConditionalDirective.java | 23 |
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; |
