From 8c7cd6e81abd9418dd77376d39c5623ae7bef6bc Mon Sep 17 00:00:00 2001 From: Willem Date: Fri, 24 Jan 2025 19:34:37 +0100 Subject: [PATCH] Cleaned lexer DEC modes and removed some pepper and found tab space --- .../x4o/fc18/FourCornerUnicodeDisplay.java | 11 +- .../org/x4o/fc18/FourCornerUnicodeImport.java | 36 +- .../org/x4o/fc18/FourCornerUnicodeMapper.java | 2 +- .../org/x4o/fc18/cake2/FourCornerDotCake.java | 15 +- ...eTTY.java => FourCornerDotColleFlag4.java} | 2 +- .../fc18/cake2/FourCornerDotCollePie9.java | 12 +- .../cake2/FourCornerDotColleZero33VT.java | 2 +- .../FCDotF4TTY0001DashNL.java} | 12 +- .../FCDotF4TXT0001DashSP.java} | 26 +- .../cake2/{tty00 => flag4}/package-info.java | 2 +- .../fc18/cake2/pie9c/FCDotPIE9CDash27.java | 2 +- .../cake2/zero33/FCDotAPL0127DashP7A.java | 3 +- .../cake2/zero33/FCDotAPL0127DashP7B.java | 3 +- .../cake2/zero33/FCDotAPL0127DashP7C.java | 3 +- .../cake2/zero33/FCDotBYD0127DashP7D.java | 3 +- .../cake2/zero33/FCDotBYD0127DashP7E.java | 3 +- .../cake2/zero33/FCDotBYD0127DashP7F.java | 3 +- .../fc18/cake2/zero33/FCDotCDC1604DashP6.java | 2 +- .../FCDotCMD5401Dash2D.java} | 60 +-- .../{ => dec1}/FCDotDEC0801DashE10.java | 3 +- .../{ => dec1}/FCDotDEC2701DashPX0.java | 16 +- .../FCDotINC0801DashP8.java} | 33 +- .../{ => dec1}/vt06/VTDash06DotZero.java | 2 +- .../vt06/VTDash06DotZeroACursor.java | 2 +- .../vt06/VTDash06DotZeroCClear.java | 2 +- .../zion7/FourCornerZion7SalahSequence.java | 4 +- .../fc18/zion7/FourCornerZionStenoLexer.java | 428 ++++++++++++------ .../fc18/FourCornerUnicodeDisplayTest.java | 28 +- .../x4o/fc18/FourCornerUnicodeImportTest.java | 164 +++---- .../cake2/fcdoc/FCDocPageWriterBaklava.java | 2 +- .../cake2/zero33/FCDotDEC0127DashPX0Test.java | 1 + .../x4o/fc18/cake2/zero33/FCDotVT06Test.java | 10 +- .../java/org/x4o/fc18/zion7/LexerNCRTest.java | 2 +- 33 files changed, 506 insertions(+), 393 deletions(-) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/{FourCornerDotColleTTY.java => FourCornerDotColleFlag4.java} (94%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/{tty00/FCDotTTY0001DashNL.java => flag4/FCDotF4TTY0001DashNL.java} (81%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/{zero33/FCDotDEC0901DashEU.java => flag4/FCDotF4TXT0001DashSP.java} (74%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/{tty00 => flag4}/package-info.java (97%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/{FCDotDEC0801DashE19.java => dec1/FCDotCMD5401Dash2D.java} (57%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/{ => dec1}/FCDotDEC0801DashE10.java (97%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/{ => dec1}/FCDotDEC2701DashPX0.java (92%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/{FCDotDEC0801DashE16.java => dec1/FCDotINC0801DashP8.java} (75%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/{ => dec1}/vt06/VTDash06DotZero.java (98%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/{ => dec1}/vt06/VTDash06DotZeroACursor.java (98%) rename nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/{ => dec1}/vt06/VTDash06DotZeroCClear.java (98%) diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeDisplay.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeDisplay.java index 12b8e59..f741a06 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeDisplay.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeDisplay.java @@ -139,12 +139,17 @@ public class FourCornerUnicodeDisplay { if (FourCornerDotCake.FC_DEC2701_PX0.equals(slice)) { output.appendCodePoint(FCDotPIE9DDash09.IMG_ESC_DEC.codePointDotIndex()); } + // TODO: rm after file loading if (FourCornerDotCake.FC_UWU0101_S1.equals(slice)) { - output.appendCodePoint(' '); // TMP hack + output.append("__\t \t__.:=UWU=:.__\t \t__"); // user defined tab space return true; } - if (FourCornerDotCake.FC_TTY0001_NL.equals(slice)) { - output.appendCodePoint('\n'); // TMP hack + if (FourCornerDotCake.FC_F4TXT0001_SP.equals(slice)) { + output.appendCodePoint(' '); + return true; + } + if (FourCornerDotCake.FC_F4TTY0001_NL.equals(slice)) { + output.appendCodePoint('\n'); return true; } return false; diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeImport.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeImport.java index eef8e2a..d033f7e 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeImport.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeImport.java @@ -34,10 +34,9 @@ import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence; import org.x4o.fc18.cake2.FourCornerX18CakePointSequence; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE10; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE16; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE19; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; /// Imports unicode as four corner BASIC text from the "FC.CDC1604-P6" code page. /// @@ -152,8 +151,7 @@ public class FourCornerUnicodeImport { private boolean handleDataGramWordSpacerTypes(ImportState ctx) { if (' ' == ctx.codePoint) { ctx.reset(); - ctx.output.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10); - ctx.output.add(FCDotDEC0801DashE10.E10_UWU0101_S1); + ctx.output.add(FCDotCMD5401Dash2D.CMD_F4TXT0001_SP); return true; } if (convertWhitespaces == false) { @@ -161,8 +159,7 @@ public class FourCornerUnicodeImport { } if (WHITE_SPACES.contains(ctx.codePoint)) { ctx.reset(); - ctx.output.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10); - ctx.output.add(FCDotDEC0801DashE10.E10_UWU0101_S1); + ctx.output.add(FCDotCMD5401Dash2D.CMD_F4TXT0001_SP); return true; } return false; @@ -170,8 +167,7 @@ public class FourCornerUnicodeImport { private void sendTypeWriterNewLine(ImportState ctx) { ctx.reset(); - ctx.output.add(FCDotDEC2701DashPX0.ESC68_DEC0801_E19); - ctx.output.add(FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL); + ctx.output.add(FCDotCMD5401Dash2D.CMD_F4TTY0001_NL); } private boolean handleTypeWriterStructureTypes(ImportState ctx) { @@ -270,9 +266,9 @@ public class FourCornerUnicodeImport { if (ctx.codePoint >= '0' && ctx.codePoint <= '9') { if (!FCDotCDC1604DashP6.NX10_J.equals(ctx.cdcNumberTerminator)) { if (ctx.bits == 6) { - ctx.output.addAll(toX06BaklavaPoints(FCDotDEC0801DashE16.ESC68_PIE, FCDotCDC1604DashP6.NX10_J)); + ctx.output.addAll(toX06BaklavaPoints(FCDotCDC1604DashP6.NX10_J)); } else { - ctx.output.addAll(toX08MuffinPoints(FCDotDEC0801DashE16.ESC68_PIE, FCDotCDC1604DashP6.NX10_J)); + ctx.output.addAll(toX08MuffinPoints(FCDotCDC1604DashP6.NX10_J)); } ctx.cdcNumberTerminator = FCDotCDC1604DashP6.NX10_J; } @@ -299,9 +295,9 @@ public class FourCornerUnicodeImport { if (ctx.codePoint >= 'a' && ctx.codePoint <= 'z') { if (!FCDotCDC1604DashP6.NX26_Z.equals(ctx.cdcCaseTerminator)) { if (ctx.bits == 6) { - ctx.output.addAll(toX06BaklavaPoints(FCDotDEC0801DashE16.ESC68_PIE, FCDotCDC1604DashP6.NX26_Z)); + ctx.output.addAll(toX06BaklavaPoints(FCDotCDC1604DashP6.NX26_Z)); } else { - ctx.output.addAll(toX08MuffinPoints(FCDotDEC0801DashE16.ESC68_PIE, FCDotCDC1604DashP6.NX26_Z)); + ctx.output.addAll(toX08MuffinPoints(FCDotCDC1604DashP6.NX26_Z)); } ctx.cdcCaseTerminator = FCDotCDC1604DashP6.NX26_Z; } @@ -327,20 +323,18 @@ public class FourCornerUnicodeImport { return result; } - private List toX08MuffinPoints(FCDotDEC0801DashE16 py1, FCDotCDC1604DashP6... letters) { + private List toX08MuffinPoints(FCDotCDC1604DashP6... letters) { List result = new ArrayList<>(); - result.add(FCDotDEC2701DashPX0.ESC68_DEC0801_E16); - result.addAll(py1.muffinPointSequence().stream().map(v -> FCDotCDC1604DashP6.valueOf(v)).toList()); + result.add(FCDotDEC2701DashPX0.ESC68_2PIE); for (FCDotCDC1604DashP6 letter : letters) { result.add(letter); } return result; } - private List toX06BaklavaPoints(FCDotDEC0801DashE16 py1, FCDotCDC1604DashP6... letters) { + private List toX06BaklavaPoints(FCDotCDC1604DashP6... letters) { List result = new ArrayList<>(); - result.addAll(FCDotDEC2701DashPX0.ESC68_DEC0801_E16.baklavaPointSequence().stream().map(v -> FCDotCDC1604DashP6.valueOf(v)).toList()); - result.addAll(py1.baklavaPointSequence().stream().map(v -> FCDotCDC1604DashP6.valueOf(v)).toList()); + result.add(FCDotDEC2701DashPX0.ESC68_2PIE); for (FCDotCDC1604DashP6 letter : letters) { result.add(letter); } @@ -439,7 +433,7 @@ public class FourCornerUnicodeImport { return FCDotCDC1604DashP6.NX26_Z; } if ("& ⅋ 🙰 🙱 🙲 🙳 🙴 🙵".contains(codePoint)) { - return FCDotCDC1604DashP6.NX27_AMPERSAND; + return FCDotCDC1604DashP6.NX27_AMP; } return null; } diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeMapper.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeMapper.java index 5296f62..2dfe41c 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeMapper.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeMapper.java @@ -41,7 +41,7 @@ import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash10; import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash11; import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash20; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; /// Holds conversion maps between four corner int18 and unicode int21 points. /// diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCake.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCake.java index ce68ff4..cbc0800 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCake.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCake.java @@ -52,6 +52,8 @@ import org.x4o.fc18.cake2.clk1k.FCDotCLK1KDashW; import org.x4o.fc18.cake2.clk1k.FCDotCLK1KDashX; import org.x4o.fc18.cake2.clk1k.FCDotCLK1KDashY; import org.x4o.fc18.cake2.clk1k.FCDotCLK1KDashZ; +import org.x4o.fc18.cake2.flag4.FCDotF4TTY0001DashNL; +import org.x4o.fc18.cake2.flag4.FCDotF4TXT0001DashSP; import org.x4o.fc18.cake2.gram5.FCDotAMD0110DashSA; import org.x4o.fc18.cake2.gram5.FCDotBIP0039Dash2K; import org.x4o.fc18.cake2.gram5.FCDotBMW0102DashS2; @@ -121,7 +123,6 @@ import org.x4o.fc18.cake2.pie9d.FCDotPIE9DDash24; import org.x4o.fc18.cake2.pie9d.FCDotPIE9DDash25; import org.x4o.fc18.cake2.pie9d.FCDotPIE9DDash26; import org.x4o.fc18.cake2.pie9d.FCDotPIE9DDash27; -import org.x4o.fc18.cake2.tty00.FCDotTTY0001DashNL; import org.x4o.fc18.cake2.zero33.FCDotAPL0127DashP7A; import org.x4o.fc18.cake2.zero33.FCDotAPL0127DashP7B; import org.x4o.fc18.cake2.zero33.FCDotAPL0127DashP7C; @@ -129,7 +130,7 @@ import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7D; import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7E; import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7F; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; /// The dot cake index of four corner 18 bit words in cake slices which holds the cake points. /// @@ -306,12 +307,16 @@ public enum FourCornerDotCake { FC_CLK1K_AMP(131072 + (1024*26), 1024/*, FCDotCLK1KDashAmp.values()*/), // =========== Allow structures,sandworms and legacy unicode an pieve of the cake + + /// Tele Type Ytructure00 zero one Spanish Peace + /// The "normal" space, An undefined UWU points to here, as that is a custom space like tab space. + FC_F4TXT0001_SP(0x026C00, 1, FCDotF4TXT0001DashSP.values(), "TXT00 zero one Spanish Peace"), - /// Tele Type Ytructure00 zero one New Line - FC_TTY0001_NL(0x026C00, 1, FCDotTTY0001DashNL.values(), "TTY00 zero one New Line"), + /// Tele Type Ytructure00 zero one Nether Line + FC_F4TTY0001_NL(0x026C01, 1, FCDotF4TTY0001DashNL.values(), "TTY00 zero one Nether Line"), /// Reserved tele type ytructure controls. - __RESERVED_TTY00(0x026C00 + 1, 0x026DC0 - 0x026C00 - 1, "Reserved for TTY00"), + __RESERVED_TTY00(0x026C00 + 2, 0x026DC0 - 0x026C00 - 2, "Reserved for TTY00"), /// Preamble of a sand worm body as a identifiable type header or an Número2 Lingua tree key. /// Octal worm encoding are 192 unique octals in ordered sequence and have allowed length of 24/48/96 or 192. diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleTTY.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleFlag4.java similarity index 94% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleTTY.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleFlag4.java index 7b7fde6..3098512 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleTTY.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleFlag4.java @@ -26,6 +26,6 @@ package org.x4o.fc18.cake2; /// /// @author Willem Cazander /// @version 1.0 Jan 22, 2025 -public interface FourCornerDotColleTTY extends FourCornerX18CakePointDotIndex { +public interface FourCornerDotColleFlag4 extends FourCornerX18CakePointDotIndex { } diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCollePie9.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCollePie9.java index 8112462..f4c2bd8 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCollePie9.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCollePie9.java @@ -26,8 +26,7 @@ import java.util.ArrayList; import java.util.List; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE16; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; /// Parent interface for all PIE9C and PIE9D enum. /// @@ -63,8 +62,7 @@ public interface FourCornerDotCollePie9 extends FourCornerX06BaklavaPointSequenc default List baklavaPointsPIE9C(FCDotCDC1604DashP6 letter, int offset) { List result = new ArrayList<>(); - result.addAll(FCDotDEC2701DashPX0.ESC68_DEC0801_E16.baklavaPointSequence()); - result.addAll(FCDotDEC0801DashE16.ESC68_PIE.baklavaPointSequence()); + result.addAll(FCDotDEC2701DashPX0.ESC68_2PIE.baklavaPointSequence()); result.add(letter.baklavaPointDotIndex()); result.add(FCDotCDC1604DashP6.NX01_A.ordinal() + offset); //result.add(FCDotCDC1604DashP6.SEQ_SALAH__EXCLAMATION.cakePointDotIndex()); // TODO: add api layer snake for head @@ -73,10 +71,10 @@ public interface FourCornerDotCollePie9 extends FourCornerX06BaklavaPointSequenc default List baklavaPointsPIE9D(FCDotCDC1604DashP6 letter, int offset) { List result = new ArrayList<>(); - result.addAll(FCDotDEC2701DashPX0.ESC68_DEC0801_E16.baklavaPointSequence()); - result.addAll(FCDotDEC0801DashE16.ESC68_PIE.baklavaPointSequence()); + result.addAll(FCDotDEC2701DashPX0.ESC68_2PIE.baklavaPointSequence()); result.add(letter.baklavaPointDotIndex()); - result.add(FCDotCDC1604DashP6.NY01_AT.ordinal() - offset); + result.add(FCDotCDC1604DashP6._SALT_COMPARE_RIGHT.baklavaPointDotIndex()); + result.add(FCDotCDC1604DashP6.NX01_A.ordinal() - offset); //result.add(FCDotCDC1604DashP6.SEQ_SALAH__EXCLAMATION.cakePointDotIndex()); // TODO: add api layer snake for head return result; } diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleZero33VT.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleZero33VT.java index 32afe82..9294446 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleZero33VT.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotColleZero33VT.java @@ -26,7 +26,7 @@ import java.util.ArrayList; import java.util.List; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; /// Glue interface for the command VT enums. /// diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/tty00/FCDotTTY0001DashNL.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/flag4/FCDotF4TTY0001DashNL.java similarity index 81% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/tty00/FCDotTTY0001DashNL.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/flag4/FCDotF4TTY0001DashNL.java index 7fa6e2e..279f93e 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/tty00/FCDotTTY0001DashNL.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/flag4/FCDotF4TTY0001DashNL.java @@ -20,24 +20,24 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.fc18.cake2.tty00; +package org.x4o.fc18.cake2.flag4; import org.x4o.fc18.cake2.FourCornerDotCake; -import org.x4o.fc18.cake2.FourCornerDotColleTTY; +import org.x4o.fc18.cake2.FourCornerDotColleFlag4; /** - * "FC.TYY0001-NL" Four Corner Tele Type Ytucture00 zero one New Line with automatic carriage return. + * "FC.F4TTY0001-NL" Four Corner Flag 4 Tele Type Ytucture00 zero one New Line with automatic carriage return. * * @author Willem Cazander * @version 1.0 Jan 22, 2025 */ -public enum FCDotTTY0001DashNL implements FourCornerDotColleTTY { +public enum FCDotF4TTY0001DashNL implements FourCornerDotColleFlag4 { - NEW_LINE, + NETHER_LINE, ; @Override public int cakePointDotIndex() { - return FourCornerDotCake.FC_TTY0001_NL.getStart() + ordinal(); + return FourCornerDotCake.FC_F4TTY0001_NL.getStart() + ordinal(); } } diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0901DashEU.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/flag4/FCDotF4TXT0001DashSP.java similarity index 74% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0901DashEU.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/flag4/FCDotF4TXT0001DashSP.java index 54abe9b..e3da0f9 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0901DashEU.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/flag4/FCDotF4TXT0001DashSP.java @@ -20,24 +20,24 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.fc18.cake2.zero33; +package org.x4o.fc18.cake2.flag4; + +import org.x4o.fc18.cake2.FourCornerDotCake; +import org.x4o.fc18.cake2.FourCornerDotColleFlag4; /** - * "FC.DEC0901-EU" Four Corner dot Directly Escaped Control of 9 Extra User control codes. + * "FC.F4TXT0001-SP" Four Corner Flag 4 Tele Type Ytucture00 zero one Spanish Peace empty space indicator for text. * * @author Willem Cazander - * @version 1.0 Jan 21, 2025 + * @version 1.0 Jan 22, 2025 */ -public enum FCDotDEC0901DashEU { +public enum FCDotF4TXT0001DashSP implements FourCornerDotColleFlag4 { - ESC_USER_1, - ESC_USER_2, - ESC_USER_3, - ESC_USER_4, - ESC_USER_5, - ESC_USER_6, - ESC_USER_7, - ESC_USER_8, - ESC_USER_9, + SPANISH_PEACE, ; + + @Override + public int cakePointDotIndex() { + return FourCornerDotCake.FC_F4TXT0001_SP.getStart() + ordinal(); + } } diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/tty00/package-info.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/flag4/package-info.java similarity index 97% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/tty00/package-info.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/flag4/package-info.java index a6c81f7..870793c 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/tty00/package-info.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/flag4/package-info.java @@ -27,4 +27,4 @@ * * @since 1.0 */ -package org.x4o.fc18.cake2.tty00; +package org.x4o.fc18.cake2.flag4; diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/pie9c/FCDotPIE9CDash27.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/pie9c/FCDotPIE9CDash27.java index d5731dc..4e1493b 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/pie9c/FCDotPIE9CDash27.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/pie9c/FCDotPIE9CDash27.java @@ -73,7 +73,7 @@ public enum FCDotPIE9CDash27 implements FourCornerDotCollePie9 { @Override public List baklavaPointSequence() { - return baklavaPointsPIE9C(FCDotCDC1604DashP6.NX27_AMPERSAND, ordinal()); + return baklavaPointsPIE9C(FCDotCDC1604DashP6.NX27_AMP, ordinal()); } @Override diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7A.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7A.java index 3e60513..e8f3fcf 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7A.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7A.java @@ -26,6 +26,7 @@ import java.util.List; import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.FourCornerDotColleZero33; +import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; /// "FC.APL0127-P7A" Four Corner A Programming Language symbols cake slice of cake points. /// @@ -114,7 +115,7 @@ public enum FCDotAPL0127DashP7A implements FourCornerDotColleZero33 { @Override public List baklavaPointSequence() { - return FCDotDEC0801DashE16.ESC6_APL0127_P7A.baklavaPointsE16(ordinal()); + return FCDotINC0801DashP8.INC_APL0127_P7A.baklavaPointsE16(ordinal()); } @Override diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7B.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7B.java index 64a68c9..c37305a 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7B.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7B.java @@ -26,6 +26,7 @@ import java.util.List; import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.FourCornerDotColleZero33; +import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; /// "FC.APL0127-P7B" Four Corner A Programming Language symbols cake slice of cake points. /// @@ -118,7 +119,7 @@ public enum FCDotAPL0127DashP7B implements FourCornerDotColleZero33 { @Override public List baklavaPointSequence() { - return FCDotDEC0801DashE16.ESC6_APL0127_P7B.baklavaPointsE16(ordinal()); + return FCDotINC0801DashP8.INC_APL0127_P7B.baklavaPointsE16(ordinal()); } @Override diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7C.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7C.java index 8da8b2d..e71585a 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7C.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotAPL0127DashP7C.java @@ -26,6 +26,7 @@ import java.util.List; import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.FourCornerDotColleZero33; +import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; /// "FC.APL0127-P7C" Four Corner A Programming Language symbols cake slice of cake points. /// @@ -120,7 +121,7 @@ public enum FCDotAPL0127DashP7C implements FourCornerDotColleZero33 { @Override public List baklavaPointSequence() { - return FCDotDEC0801DashE16.ESC6_APL0127_P7A.baklavaPointsE16(ordinal()); + return FCDotINC0801DashP8.INC_APL0127_P7A.baklavaPointsE16(ordinal()); } @Override diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7D.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7D.java index a7b3cd1..781aa66 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7D.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7D.java @@ -26,6 +26,7 @@ import java.util.List; import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.FourCornerDotColleZero33; +import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; /// "FC.BYD0127-P7D" Four Corner Block Your Display terminal application. /// @@ -72,7 +73,7 @@ public enum FCDotBYD0127DashP7D implements FourCornerDotColleZero33 { @Override public List baklavaPointSequence() { - return FCDotDEC0801DashE16.ESC6_BYD0127_P7D.baklavaPointsE16(ordinal()); + return FCDotINC0801DashP8.INC_BYD0127_P7D.baklavaPointsE16(ordinal()); } @Override diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7E.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7E.java index ec5b12c..6977c20 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7E.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7E.java @@ -26,6 +26,7 @@ import java.util.List; import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.FourCornerDotColleZero33; +import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; /// "FC.BYD0127-P7E" Four Corner Block Your Display terminal application. /// @@ -74,7 +75,7 @@ public enum FCDotBYD0127DashP7E implements FourCornerDotColleZero33 { @Override public List baklavaPointSequence() { - return FCDotDEC0801DashE16.ESC6_BYD0127_P7E.baklavaPointsE16(ordinal()); + return FCDotINC0801DashP8.INC_BYD0127_P7E.baklavaPointsE16(ordinal()); } @Override diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7F.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7F.java index a898595..aac17c3 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7F.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotBYD0127DashP7F.java @@ -26,6 +26,7 @@ import java.util.List; import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.FourCornerDotColleZero33; +import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; /// "FC.BYD0127-P7F" Four Corner Block Your Display terminal application. /// @@ -76,7 +77,7 @@ public enum FCDotBYD0127DashP7F implements FourCornerDotColleZero33 { @Override public List baklavaPointSequence() { - return FCDotDEC0801DashE16.ESC6_BYD0127_P7F.baklavaPointsE16(ordinal()); + return FCDotINC0801DashP8.INC_BYD0127_P7F.baklavaPointsE16(ordinal()); } @Override diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotCDC1604DashP6.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotCDC1604DashP6.java index 31478bc..8436200 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotCDC1604DashP6.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotCDC1604DashP6.java @@ -127,7 +127,7 @@ public enum FCDotCDC1604DashP6 implements FourCornerDotColleZero33 { NX25_Y('Y'), NX26_Z('Z'), /// The 27th letter is at the end of the old english alphabet. - NX27_AMPERSAND('&'), + NX27_AMP('&'), ; static final private FCDotCDC1604DashP6[] VALUES = values(); // values() is slow method diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0801DashE19.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotCMD5401Dash2D.java similarity index 57% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0801DashE19.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotCMD5401Dash2D.java index 3e2fb08..fa3a0ee 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0801DashE19.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotCMD5401Dash2D.java @@ -20,51 +20,48 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.fc18.cake2.zero33; +package org.x4o.fc18.cake2.zero33.dec1; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; +import java.util.Optional; import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence; import org.x4o.fc18.cake2.FourCornerX18CakePointSequence; +import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; /** - * "FC.DEC0801-E19" Four Corner dot Directly Escaped Control of 8 embedded control codes. + * "FC.CMD5401-2D" Four Corner dot Command for 54 embedded control codes. * * @author Willem Cazander * @version 1.0 Jan 21, 2025 */ -public enum FCDotDEC0801DashE19 implements FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointSequence { +public enum FCDotCMD5401Dash2D implements FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointSequence { - /// ¡¡¡ - /// Write out an basic structure NEXT token, also called a line feed with automatic carriage return. - TYPE_WRITER_TTY0001_NL, + /// Write out an basic spanish peace sign, a virtual none-excisting symbol. + CMD_F4TXT0001_SP(FCDotCDC1604DashP6.NX01_A), - /// ¡¡¿ - __RESERVED_2, - - /// ¡¿¡ - __RESERVED_3, - - /// ¡¿¿ - __RESERVED_4, - - /// ¿¡¿ - __RESERVED_5, - - /// ¿¡¿ - __RESERVED_6, - - /// ¿¡¡ - __RESERVED_7, - - /// ¿¿¿ - __RESERVED_8, + /// Write out an nether line which goes to the line below, also called a line feed with automatic carriage return. + CMD_F4TTY0001_NL(FCDotCDC1604DashP6.NX02_B), ; + private final FCDotCDC1604DashP6 selector; + + private FCDotCMD5401Dash2D(FCDotCDC1604DashP6 selector) { + this.selector = Objects.requireNonNull(selector); + if (selector.ordinal() <= FCDotCDC1604DashP6._SALT_COMPARE_RIGHT.ordinal()) { + throw new IllegalArgumentException("Not used here to keep mind space free"); + } + } + @Override public List baklavaPointSequence() { - return FCDotCDC1604DashP6.pepper3SequenceWritePoints(ordinal()); + List result = new ArrayList<>(); + result.addAll(FCDotDEC2701DashPX0.ESC68_CMD5401_2D.baklavaPointSequence()); + result.add(selector.baklavaPointDotIndex()); + return result; } @Override @@ -76,4 +73,13 @@ public enum FCDotDEC0801DashE19 implements FourCornerX06BaklavaPointSequence, Fo public List cakePointSequence() { return baklavaPointSequence(); } + + static public Optional valueOfCDC(int cdcPoint) { + for (FCDotCMD5401Dash2D value : values()) { + if (value.selector.baklavaPointDotIndex() == cdcPoint) { + return Optional.of(value); + } + } + return Optional.empty(); + } } diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0801DashE10.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotDEC0801DashE10.java similarity index 97% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0801DashE10.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotDEC0801DashE10.java index 1ecd9fb..7966f33 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0801DashE10.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotDEC0801DashE10.java @@ -20,7 +20,7 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.fc18.cake2.zero33; +package org.x4o.fc18.cake2.zero33.dec1; import java.util.ArrayList; import java.util.List; @@ -28,6 +28,7 @@ import java.util.List; import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence; import org.x4o.fc18.cake2.FourCornerX18CakePointSequence; +import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; /** * "FC.DEC0801-E10" Four Corner dot Directly Escaped Control of 8 embedded control codes. diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC2701DashPX0.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotDEC2701DashPX0.java similarity index 92% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC2701DashPX0.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotDEC2701DashPX0.java index a03272c..32c056d 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC2701DashPX0.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotDEC2701DashPX0.java @@ -20,7 +20,7 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.fc18.cake2.zero33; +package org.x4o.fc18.cake2.zero33.dec1; import java.util.List; @@ -28,6 +28,7 @@ import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence; import org.x4o.fc18.cake2.FourCornerX18CakePointDotIndex; +import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; /** * "FC.DEC2701-PX0" Four Corner dot Direct or Escaped Control in grid of 1 by 27 of dashed CDC invisible page X Zero codes. @@ -107,11 +108,16 @@ public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, Fo __ESC_RESERVED_B5, /// _ESC6_X2 _ESC6_X2 _ESC6_X3 = 15 - __ESC_RESERVED_B6, + /// Select psacked pie terminator symbol on 6 and 8 bit systems. + /// A = 1, first P6 is terminator select, than next P6 _A++ select pie part 1-27, until other P6 stops it. + /// Example ascii "012" is + /// 012 = __PIE NX10_J NX01_A NX02_B NX02_C + /// TODO: Add negative AT for -1 to -27 as P6 symbols to select PIE9D + map in __RESERVED_PIE_SYMBOLS + ESC68_2PIE, /// _ESC6_X2 _ESC6_X3 _ESC6_X1 = 16 /// Embed symbol mode starts in CDC, use sequence of 3 UPDOWN letters to select mode and end with ! - ESC68_DEC0801_E16, + ESC68_INC0801_P8, /// _ESC6_X2 _ESC6_X3 _ESC6_X2 = 17 /// Select packed pie terminator number for 6 and 8 bit systems. @@ -127,8 +133,8 @@ public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, Fo // =========== Internal control sequences /// _ESC6_X3 _ESC6_X1 _ESC6_X1 = 19 - /// Extra sequence selector for type writer signals. - ESC68_DEC0801_E19, + /// Command for type writer signals shortcuts. + ESC68_CMD5401_2D, /// _ESC6_X3 _ESC6_X1 _ESC6_X2 = 20 __ESC_RESERVED_C2, diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0801DashE16.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotINC0801DashP8.java similarity index 75% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0801DashE16.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotINC0801DashP8.java index c28eaeb..21121db 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/FCDotDEC0801DashE16.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/FCDotINC0801DashP8.java @@ -20,7 +20,7 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.fc18.cake2.zero33; +package org.x4o.fc18.cake2.zero33.dec1; import java.util.ArrayList; import java.util.List; @@ -28,50 +28,47 @@ import java.util.List; import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence; import org.x4o.fc18.cake2.FourCornerX18CakePointSequence; +import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; /** - * "FC.DEC0801-E16" Four Corner dot Directly Escaped Control of 8 symbols modes. + * "FC.INC0801-P8" Four Corner dot escaped Incremented 8 controls of the Page modes. * * @author Willem Cazander * @version 1.0 Jan 21, 2025 */ -public enum FCDotDEC0801DashE16 implements FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointSequence { +public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointSequence { /// ¡¡¡ - /// Return back to P6 mode. - ESC68_CDC1604_P6, + /// Select italic mode. + INC_PIE9D_27, /// ¡¡¿ /// Select APL page 7A mode. - ESC6_APL0127_P7A, + INC_APL0127_P7A, /// ¡¿¡ /// Select APL page 7B mode. - ESC6_APL0127_P7B, + INC_APL0127_P7B, /// ¡¿¿ /// Select APL page 7C mode. - ESC6_APL0127_P7C, + INC_APL0127_P7C, /// ¿¡¿ /// Select BYD page 7D mode. - ESC6_BYD0127_P7D, + INC_BYD0127_P7D, /// ¿¡¿ /// Select BYD page 7E mode. - ESC6_BYD0127_P7E, + INC_BYD0127_P7E, /// ¿¡¡ /// Select BYD page 7F mode. - ESC6_BYD0127_P7F, + INC_BYD0127_P7F, /// ¿¿¿ - /// Select packed pie terminator symbol on 6 and 8 bit systems. - /// A = 1, first P6 is terminator select, than next P6 _A++ select pie part 1-27, until other P6 stops it. - /// Example ascii "012" is - /// 012 = __PIE NX10_J NX01_A NX02_B NX02_C - /// TODO: Add negative AT for -1 to -27 as P6 symbols to select PIE9D + map in __RESERVED_PIE_SYMBOLS - ESC68_PIE, + // Select lower case mode. + INC_PIE9C_26, ; @Override @@ -91,7 +88,7 @@ public enum FCDotDEC0801DashE16 implements FourCornerX06BaklavaPointSequence, Fo public List baklavaPointsE16(int offset) { List result = new ArrayList<>(); - result.addAll(FCDotDEC2701DashPX0.ESC68_DEC0801_E16.baklavaPointSequence()); + result.addAll(FCDotDEC2701DashPX0.ESC68_INC0801_P8.baklavaPointSequence()); result.addAll(baklavaPointSequence()); result.add(FCDotCDC1604DashP6.NX01_A.ordinal() + offset); //result.add(FCDotCDC1604DashP6.SEQ_SALAH__EXCLAMATION.cakePointDotIndex()); // TODO: add api layer snake for head diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/vt06/VTDash06DotZero.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/vt06/VTDash06DotZero.java similarity index 98% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/vt06/VTDash06DotZero.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/vt06/VTDash06DotZero.java index deee30b..4577e66 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/vt06/VTDash06DotZero.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/vt06/VTDash06DotZero.java @@ -20,7 +20,7 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.fc18.cake2.zero33.vt06; +package org.x4o.fc18.cake2.zero33.dec1.vt06; import java.util.Objects; diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/vt06/VTDash06DotZeroACursor.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/vt06/VTDash06DotZeroACursor.java similarity index 98% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/vt06/VTDash06DotZeroACursor.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/vt06/VTDash06DotZeroACursor.java index bad6268..1865170 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/vt06/VTDash06DotZeroACursor.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/vt06/VTDash06DotZeroACursor.java @@ -20,7 +20,7 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.fc18.cake2.zero33.vt06; +package org.x4o.fc18.cake2.zero33.dec1.vt06; import java.util.List; import java.util.Objects; diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/vt06/VTDash06DotZeroCClear.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/vt06/VTDash06DotZeroCClear.java similarity index 98% rename from nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/vt06/VTDash06DotZeroCClear.java rename to nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/vt06/VTDash06DotZeroCClear.java index 7eaf44c..152841b 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/vt06/VTDash06DotZeroCClear.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/zero33/dec1/vt06/VTDash06DotZeroCClear.java @@ -20,7 +20,7 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.fc18.cake2.zero33.vt06; +package org.x4o.fc18.cake2.zero33.dec1.vt06; import java.util.List; import java.util.Objects; diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZion7SalahSequence.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZion7SalahSequence.java index 510a85d..395fec3 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZion7SalahSequence.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZion7SalahSequence.java @@ -24,7 +24,7 @@ package org.x4o.fc18.zion7; import java.util.List; -import org.x4o.fc18.cake2.zero33.FCDotDEC0901DashEU; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; /// Handles the lexer salah sequence strobes. /// @@ -32,5 +32,5 @@ import org.x4o.fc18.cake2.zero33.FCDotDEC0901DashEU; /// @version 1.0 Jan 11, 2025 public interface FourCornerZion7SalahSequence extends FourCornerZion7Candlelier { - void strobeSalahSequence(FCDotDEC0901DashEU type, List> arguments); + void strobeSalahSequence(FCDotDEC2701DashPX0 type, List> arguments); } diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java index d09b51e..e6b6c89 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java @@ -28,15 +28,15 @@ import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.PrimitiveIterator; import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE10; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE16; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE19; -import org.x4o.fc18.cake2.zero33.FCDotDEC0901DashEU; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC0801DashE10; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; /// Parsed FC text and calls the handler methods for the classified strobe lights. /// @@ -472,12 +472,13 @@ public class FourCornerZionStenoLexer { static class StenoScannerCDCDEC extends StenoScanner { // TODO: remove state here - private int scanIndex = 0; - private int scanIndexEnd = 0; - private Integer ncrMode = null; - private Integer pieMode = null; - private FCDotDEC2701DashPX0 decMode = null; - private Integer pepperMode = null; + private int cdcDECScanIndex = 0; + private int cdcDECScanIndexEnd = 0; + private FCDotDEC2701DashPX0 cdcDECMode = null; + private FCDotINC0801DashP8 cdcDECModeInc = null; + private FCDotDEC0801DashE10 cdcDECModeE10 = null; + private Integer cdcDECModeNcr = null; + private Integer cdcDECModePie = null; public StenoScannerCDCDEC() { super(FourCornerDotCake.FC_CDC1604_P6.getStart(), FourCornerDotCake.FC_DEC2701_PX0.getStop()); @@ -485,20 +486,17 @@ public class FourCornerZionStenoLexer { @Override public void process(FourCornerZionStenoLexer lexer, int idxFirst, int idxLast) { - decMode = null; - ncrMode = null; - pieMode = null; - pepperMode = null; - scanIndex = idxFirst; - scanIndexEnd = idxLast; - for (scanIndex = idxFirst; scanIndex <= scanIndexEnd; scanIndex++) { + decModeReset(); + cdcDECScanIndex = idxFirst; + cdcDECScanIndexEnd = idxLast; + for (cdcDECScanIndex = idxFirst; cdcDECScanIndex <= cdcDECScanIndexEnd; cdcDECScanIndex++) { if (handleEscape(lexer)) { continue; } - if (decMode != null && handleDECMode(lexer)) { + if (cdcDECMode != null && handleDECMode(lexer)) { continue; } - int cdcDECPoint = lexer.input.get(scanIndex); + int cdcDECPoint = lexer.input.get(cdcDECScanIndex); if (FourCornerDotCake.FC_DEC2701_PX0.contains(cdcDECPoint)) { lexer.handler.strobeWord(FourCornerDotCake.FC_DEC2701_PX0, cdcDECPoint - FourCornerDotCake.FC_DEC2701_PX0.getStart()); } else { @@ -507,65 +505,46 @@ public class FourCornerZionStenoLexer { } } - private void cleanOldDECMode() { - pepperMode = null; - ncrMode = null; - pieMode = null; + private void decModeReset() { + cdcDECMode = null; + cdcDECModeInc = null; + cdcDECModeE10 = null; + cdcDECModeNcr = null; + cdcDECModePie = null; } private boolean handleEscape(FourCornerZionStenoLexer lexer) { if (!lexer.handlerEscape) { return false; // disable escape handing } - int cdcDECPoint = lexer.input.get(scanIndex); + int cdcDECPoint = lexer.input.get(cdcDECScanIndex); if (FourCornerDotCake.FC_DEC2701_PX0.contains(cdcDECPoint)) { - decMode = FCDotDEC2701DashPX0.valueOfCakePoint(cdcDECPoint); - cleanOldDECMode(); + decModeReset(); + cdcDECMode = FCDotDEC2701DashPX0.valueOfCakePoint(cdcDECPoint); return true; } else if (FCDotCDC1604DashP6.isEscape6(cdcDECPoint)) { - decMode = readEscape6(lexer); - cleanOldDECMode(); - return true; - } - // TODO: move this code where used - if (FCDotCDC1604DashP6.isEscapePepper(cdcDECPoint)) { - pepperMode = readEscapePepper3(lexer); - - // pepper is allowed to be last char of stream of ending with new line ending - if (FCDotDEC2701DashPX0.ESC68_DEC0801_E19.equals(decMode)) { - FCDotDEC0801DashE19 e19Mode = FCDotDEC0801DashE19.values()[pepperMode]; - if (e19Mode == FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL) { - decMode = null; - pepperMode = null; - lexer.currLine++; - lexer.currCol = 0; - lexer.fireSignals.fireStateLine(lexer.currLine); - lexer.fireSignals.fireStateColumn(lexer.currCol); - lexer.handler.strobeWord(FourCornerDotCake.FC_TTY0001_NL, 0); // new line - return true; - } - lexer.smokeSignals.burnUnsupported(lexer.currLine, lexer.currCol, pepperMode); - } + decModeReset(); + cdcDECMode = readEscape6(lexer); return true; } return false; } private FCDotDEC2701DashPX0 readEscape6(FourCornerZionStenoLexer lexer) { - int cdcPoint1 = lexer.input.get(scanIndex); - if (scanIndex >= scanIndexEnd) { + int cdcPoint1 = lexer.input.get(cdcDECScanIndex); + if (cdcDECScanIndex >= cdcDECScanIndexEnd) { return null; } - scanIndex++; - int cdcPoint2 = lexer.input.get(scanIndex); + cdcDECScanIndex++; + int cdcPoint2 = lexer.input.get(cdcDECScanIndex); if (!FCDotCDC1604DashP6.isEscape6(cdcPoint2)) { return null; } - if (scanIndex >= scanIndexEnd) { + if (cdcDECScanIndex >= cdcDECScanIndexEnd) { return null; } - scanIndex++; - int cdcPoint3 = lexer.input.get(scanIndex); + cdcDECScanIndex++; + int cdcPoint3 = lexer.input.get(cdcDECScanIndex); if (!FCDotCDC1604DashP6.isEscape6(cdcPoint3)) { return null; } @@ -576,20 +555,20 @@ public class FourCornerZionStenoLexer { } private Integer readEscapePepper3(FourCornerZionStenoLexer lexer) { - int cdcPoint1 = lexer.input.get(scanIndex); - if (scanIndex >= scanIndexEnd) { + int cdcPoint1 = lexer.input.get(cdcDECScanIndex); + if (cdcDECScanIndex >= cdcDECScanIndexEnd) { return null; } - scanIndex++; - int cdcPoint2 = lexer.input.get(scanIndex); + cdcDECScanIndex++; + int cdcPoint2 = lexer.input.get(cdcDECScanIndex); if (!FCDotCDC1604DashP6.isEscapePepper(cdcPoint2)) { return null; } - if (scanIndex >= scanIndexEnd) { + if (cdcDECScanIndex >= cdcDECScanIndexEnd) { return null; } - scanIndex++; - int cdcPoint3 = lexer.input.get(scanIndex); + cdcDECScanIndex++; + int cdcPoint3 = lexer.input.get(cdcDECScanIndex); if (!FCDotCDC1604DashP6.isEscapePepper(cdcPoint3)) { return null; } @@ -600,120 +579,266 @@ public class FourCornerZionStenoLexer { } private boolean handleDECMode(FourCornerZionStenoLexer lexer) { - if (FCDotDEC2701DashPX0.ESC_STOP.equals(decMode)) { - cleanOldDECMode(); - decMode = null; + if (FCDotDEC2701DashPX0.ESC_STOP.equals(cdcDECMode)) { + decModeReset(); return false; // print current char } - if (decMode.isExternal()) { + if (cdcDECMode.isExternal() || FCDotDEC2701DashPX0.ESC_VT06.equals(cdcDECMode)) { + decModeReset(); List> args = new ArrayList<>(); boolean readOK = scanSalahRakaAt(lexer, args); if (readOK == false) { return true; // point is eaten } if (lexer.handlerSalahSequence != null) { - FCDotDEC0901DashEU salahMode = FCDotDEC0901DashEU.values()[decMode.ordinal()]; - lexer.handlerSalahSequence.strobeSalahSequence(salahMode, args); + lexer.handlerSalahSequence.strobeSalahSequence(cdcDECMode, args); } return true; } - if (pepperMode != null) { - return handlePepper(lexer); + if (FCDotDEC2701DashPX0.ESC68_2PIE.equals(cdcDECMode)) { + return handlePIE(lexer); } - if (FCDotDEC2701DashPX0.ESC68_NCR.equals(decMode)) { + if (FCDotDEC2701DashPX0.ESC68_CMD5401_2D.equals(cdcDECMode)) { + return handleCMD(lexer); + } + if (FCDotDEC2701DashPX0.ESC68_NCR.equals(cdcDECMode)) { return handleNCR(lexer); // TODO: add small bank switching ? } - if (FCDotDEC2701DashPX0.ESC68_FC18.equals(decMode)) { - decMode = null; + if (FCDotDEC2701DashPX0.ESC68_FC18.equals(cdcDECMode)) { return handleFC18(lexer); } - if (FCDotDEC2701DashPX0.ESC_VT06.equals(decMode)) { - // TODO: impl + if (FCDotDEC2701DashPX0.ESC_DEC0801_E10.equals(cdcDECMode)) { + return handleE10(lexer); } - if (FCDotDEC2701DashPX0.ESC_KANJI.equals(decMode)) { + if (FCDotDEC2701DashPX0.ESC68_INC0801_P8.equals(cdcDECMode)) { + return handleINC(lexer); + } + if (FCDotDEC2701DashPX0.ESC_KANJI.equals(cdcDECMode)) { // TODO: impl } return false; } - private boolean handlePepper(FourCornerZionStenoLexer lexer) { - int cdcPoint = lexer.input.get(scanIndex); - if (FCDotDEC2701DashPX0.ESC_DEC0801_E10.equals(decMode)) { - FCDotDEC0801DashE10 e10Mode = FCDotDEC0801DashE10.values()[pepperMode]; - if (e10Mode == FCDotDEC0801DashE10.E10_UWU0101_S1) { - decMode = null; - pepperMode = null; - lexer.handler.strobeWord(FourCornerDotCake.FC_UWU0101_S1, 0); // white space - return false; // print current char, which is the next.... - } - lexer.smokeSignals.burnUnsupported(lexer.currLine, lexer.currCol, cdcPoint); + private boolean handleINC(FourCornerZionStenoLexer lexer) { + int cdcPoint = lexer.input.get(cdcDECScanIndex); + if (FCDotCDC1604DashP6.isEscapePepper(cdcPoint)) { + cdcDECModeInc = FCDotINC0801DashP8.values()[readEscapePepper3(lexer)]; + return true; + } + if (cdcDECModeInc == null) { + decModeReset(); return false; } - if (FCDotDEC2701DashPX0.ESC68_DEC0801_E16.equals(decMode)) { - FCDotDEC0801DashE16 e10Mode = FCDotDEC0801DashE16.values()[pepperMode]; - if (e10Mode == FCDotDEC0801DashE16.ESC68_CDC1604_P6) { - pepperMode = null; - return true; - } - // TODO: add PIE left/right + elevator button support - if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal()) { - pepperMode = null; +// if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal()) { +// decModeReset(); +// return false; +// } + if (FCDotINC0801DashP8.INC_PIE9D_27.equals(cdcDECModeInc)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX27_AMP.ordinal()) { + decModeReset(); return false; } - if (e10Mode == FCDotDEC0801DashE16.ESC6_APL0127_P7A) { - lexer.handler.strobeWord(FourCornerDotCake.FC_APL0127_P7A, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); - return true; - } - if (e10Mode == FCDotDEC0801DashE16.ESC6_APL0127_P7B) { - lexer.handler.strobeWord(FourCornerDotCake.FC_APL0127_P7B, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); - return true; - } - if (e10Mode == FCDotDEC0801DashE16.ESC6_APL0127_P7C) { - lexer.handler.strobeWord(FourCornerDotCake.FC_APL0127_P7C, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); - return true; - } - if (e10Mode == FCDotDEC0801DashE16.ESC6_BYD0127_P7D) { - lexer.handler.strobeWord(FourCornerDotCake.FC_BYD0127_P7D, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); - return true; - } - if (e10Mode == FCDotDEC0801DashE16.ESC6_BYD0127_P7E) { - lexer.handler.strobeWord(FourCornerDotCake.FC_BYD0127_P7E, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); - return true; - } - if (e10Mode == FCDotDEC0801DashE16.ESC6_BYD0127_P7F) { - lexer.handler.strobeWord(FourCornerDotCake.FC_BYD0127_P7F, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); - return true; - } - if (e10Mode == FCDotDEC0801DashE16.ESC68_PIE) { - return handlePIE(lexer); - } + lexer.handler.strobeWord(FourCornerDotCake.FC_PIE9C_27, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); + return true; } + if (FCDotINC0801DashP8.INC_APL0127_P7A.equals(cdcDECModeInc)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX27_AMP.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_APL0127_P7A, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); + return true; + } + if (FCDotINC0801DashP8.INC_APL0127_P7B.equals(cdcDECModeInc)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX27_AMP.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_APL0127_P7B, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); + return true; + } + if (FCDotINC0801DashP8.INC_APL0127_P7C.equals(cdcDECModeInc)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX27_AMP.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_APL0127_P7C, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); + return true; + } + if (FCDotINC0801DashP8.INC_BYD0127_P7D.equals(cdcDECModeInc)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX27_AMP.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_BYD0127_P7D, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); + return true; + } + if (FCDotINC0801DashP8.INC_BYD0127_P7E.equals(cdcDECModeInc)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX27_AMP.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_BYD0127_P7E, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); + return true; + } + if (FCDotINC0801DashP8.INC_BYD0127_P7F.equals(cdcDECModeInc)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX27_AMP.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_BYD0127_P7F, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); + return true; + } + if (FCDotINC0801DashP8.INC_PIE9C_26.equals(cdcDECModeInc)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX26_Z.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_PIE9C_26, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); + return true; + } + return false; + } + + private boolean handleE10(FourCornerZionStenoLexer lexer) { + int cdcPoint = lexer.input.get(cdcDECScanIndex); + if (FCDotCDC1604DashP6.isEscapePepper(cdcPoint)) { + cdcDECModeE10 = FCDotDEC0801DashE10.values()[readEscapePepper3(lexer)]; + return true; + } + if (FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex() == cdcPoint) { + decModeReset(); + return true; // end E10 mode, so no print + } +// if (FCDotCDC1604DashP6._RAKA_QUESTION.baklavaPointDotIndex() == cdcPoint) { +// decModeE10DeckLevel = 0; +// } +// if (FCDotCDC1604DashP6._SALT_COMPARE_LEFT.baklavaPointDotIndex() == cdcPoint) { +// decModeE10DeckLevel = 1; +// return true; +// } +// if (FCDotCDC1604DashP6._SALT_COMPARE_RIGHT.baklavaPointDotIndex() == cdcPoint) { +// decModeE10DeckLevel = 2; +// return true; +// } + if (FCDotDEC0801DashE10.E10_CDC1604_P6.equals(cdcDECModeE10)) { + lexer.handler.strobeWord(FourCornerDotCake.FC_CDC1604_P6, cdcPoint); + return true; + } + if (FCDotDEC0801DashE10.E10_BMW0102_S2.equals(cdcDECModeE10)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX02_B.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_BMW0102_S2, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); + return true; + } + if (FCDotDEC0801DashE10.E10_AMD0110_SA.equals(cdcDECModeE10)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX10_J.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_AMD0110_SA, cdcPoint); + return true; + } + if (FCDotDEC0801DashE10.E10_NES0127_9C.equals(cdcDECModeE10)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX27_AMP.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_NES0127_9C, cdcPoint); + return true; + } + if (FCDotDEC0801DashE10.E10_NXP0103_S3.equals(cdcDECModeE10)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX03_C.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_NXP0103_S3, cdcPoint); + return true; + } + if (FCDotDEC0801DashE10.E10_UWU0101_S1.equals(cdcDECModeE10)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX01_A.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_UWU0101_S1, 0); // white space + return true; + } + if (FCDotDEC0801DashE10.E10_ICL0126_9B.equals(cdcDECModeE10)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX26_Z.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_ICL0126_9B, cdcPoint); + return true; + } + if (FCDotDEC0801DashE10.E10_OCE0801_H3.equals(cdcDECModeE10)) { + if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > FCDotCDC1604DashP6.NX08_H.ordinal()) { + decModeReset(); + return false; + } + lexer.handler.strobeWord(FourCornerDotCake.FC_OCE0801_H3, cdcPoint); + return true; + } + decModeReset(); + lexer.smokeSignals.burnUnsupported(lexer.currLine, lexer.currCol, cdcPoint); + return false; + } + + private boolean handleCMD(FourCornerZionStenoLexer lexer) { + int cdcPoint = lexer.input.get(cdcDECScanIndex); + Optional cmdModeOpt = FCDotCMD5401Dash2D.valueOfCDC(cdcPoint); + if (cmdModeOpt.isEmpty()) { + decModeReset(); + lexer.smokeSignals.burnUnsupported(lexer.currLine, lexer.currCol, cdcPoint); + return false; // TODO: add smoke for unkown cmd + } + FCDotCMD5401Dash2D cmdMode = cmdModeOpt.get(); + if (FCDotCMD5401Dash2D.CMD_F4TXT0001_SP.equals(cmdMode)) { + decModeReset(); + lexer.handler.strobeWord(FourCornerDotCake.FC_F4TXT0001_SP, 0); // white space + return true; + } + if (FCDotCMD5401Dash2D.CMD_F4TTY0001_NL.equals(cmdMode)) { + decModeReset(); + lexer.currLine++; + lexer.currCol = 0; + lexer.fireSignals.fireStateLine(lexer.currLine); + lexer.fireSignals.fireStateColumn(lexer.currCol); + lexer.handler.strobeWord(FourCornerDotCake.FC_F4TTY0001_NL, 0); // new line + return true; + } + decModeReset(); + lexer.smokeSignals.burnUnsupported(lexer.currLine, lexer.currCol, cdcPoint); return false; } private boolean handlePIE(FourCornerZionStenoLexer lexer) { - int cdcPoint = lexer.input.get(scanIndex); + int cdcPoint = lexer.input.get(cdcDECScanIndex); - if (pieMode == null) { - pieMode = cdcPoint; - if (pieMode < FCDotCDC1604DashP6.NX01_A.ordinal()) { - pieMode = null; // invalid selector, thus stop + // TODO: add PIE left/right + elevator button support + + if (cdcDECModePie == null) { + cdcDECModePie = cdcPoint; + if (cdcDECModePie < FCDotCDC1604DashP6.NX01_A.ordinal()) { + decModeReset(); return false; // print char } else { return true; } } - if (pieMode != null) { + if (cdcDECModePie != null) { if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal()) { - pieMode = null; + decModeReset(); return false; } - if (cdcPoint > pieMode) { - pieMode = null; + if (cdcPoint > cdcDECModePie) { + decModeReset(); return false; } } - int terminatorOffZero = pieMode - FCDotCDC1604DashP6.NX01_A.ordinal(); + int terminatorOffZero = cdcDECModePie - FCDotCDC1604DashP6.NX01_A.ordinal(); int numberIdxOffZero = cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal(); FourCornerDotCake slice = FourCornerDotCake.values()[terminatorOffZero + FourCornerDotCake.FC_PIE9C_01.ordinal()]; lexer.handler.strobeWord(slice, numberIdxOffZero); @@ -721,28 +846,28 @@ public class FourCornerZionStenoLexer { } private boolean handleNCR(FourCornerZionStenoLexer lexer) { - int cdcPoint = lexer.input.get(scanIndex); + int cdcPoint = lexer.input.get(cdcDECScanIndex); - if (ncrMode == null) { - ncrMode = cdcPoint; - if (ncrMode < FCDotCDC1604DashP6.NX01_A.ordinal()) { - ncrMode = null; // invalid selector, thus stop + if (cdcDECModeNcr == null) { + cdcDECModeNcr = cdcPoint; + if (cdcDECModeNcr < FCDotCDC1604DashP6.NX01_A.ordinal()) { + decModeReset(); return false; // print char } else { return true; } } - if (ncrMode != null) { + if (cdcDECModeNcr != null) { if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal()) { - ncrMode = null; + decModeReset(); return false; } - if (cdcPoint > ncrMode) { - ncrMode = null; + if (cdcPoint > cdcDECModeNcr) { + decModeReset(); return false; } } - int terminatorOff = ncrMode - FCDotCDC1604DashP6.NX01_A.ordinal() + 1; + int terminatorOff = cdcDECModeNcr - FCDotCDC1604DashP6.NX01_A.ordinal() + 1; int numberIdxOff = cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal() + 1; BigInteger denominator = BigInteger.valueOf(terminatorOff); BigInteger numerator = BigInteger.valueOf(numberIdxOff); @@ -751,6 +876,7 @@ public class FourCornerZionStenoLexer { } private boolean handleFC18(FourCornerZionStenoLexer lexer) { + decModeReset(); List> result = new ArrayList<>(); scanSalahRakaAt(lexer, result); if (result.isEmpty()) { @@ -786,17 +912,17 @@ public class FourCornerZionStenoLexer { private boolean scanSalahRakaAt(FourCornerZionStenoLexer lexer, List> result) { List argu = new ArrayList<>(); - while (scanIndex <= scanIndexEnd) { - int cdcPoint = lexer.input.get(scanIndex); + while (cdcDECScanIndex <= cdcDECScanIndexEnd) { + int cdcPoint = lexer.input.get(cdcDECScanIndex); if (cdcPoint == FCDotCDC1604DashP6._NUL.ordinal()) { lexer.smokeSignals.burnSalahInvalidCakePoint(lexer.currLine, lexer.currCol, cdcPoint); result.clear(); - scanIndex--; + cdcDECScanIndex--; return false; // _NUL not allowed salah } if (FCDotCDC1604DashP6.isEscape6(cdcPoint)) { result.add(argu); - scanIndex--; + cdcDECScanIndex--; return true; } if (FCDotCDC1604DashP6._SALAH_EXCLAMATION.ordinal() == cdcPoint) { @@ -806,10 +932,10 @@ public class FourCornerZionStenoLexer { if (FCDotCDC1604DashP6._RAKA_QUESTION.ordinal() == cdcPoint) { result.add(argu); argu = new ArrayList<>(); - scanIndex++; + cdcDECScanIndex++; continue; // Next argument } - scanIndex++; + cdcDECScanIndex++; argu.add(cdcPoint); } lexer.smokeSignals.burnSalahMissingAmen(lexer.currLine, lexer.currCol); diff --git a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeDisplayTest.java b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeDisplayTest.java index 3cd1aa8..23bf0ff 100644 --- a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeDisplayTest.java +++ b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeDisplayTest.java @@ -31,9 +31,9 @@ import org.junit.jupiter.api.Test; import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash26; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE10; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE16; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; /** * Tests four corner displayed as unicode. @@ -48,15 +48,12 @@ public class FourCornerUnicodeDisplayTest { List cdc = new ArrayList<>(); cdc.add(FCDotPIE9CDash26.LOW_A); cdc.add(FCDotPIE9CDash26.LOW_B); // if used as this per letter full escaping here.... - //cdc.add(FCDotCDC1604DashP6._SPACE); // out of range is end lower - cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10); - cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1); + cdc.add(FCDotCMD5401Dash2D.CMD_F4TXT0001_SP); cdc.add(FCDotCDC1604DashP6.NX02_B); cdc.add(FCDotCDC1604DashP6.NX03_C); cdc.add(FCDotCDC1604DashP6.NX04_D); cdc.add(FCDotCDC1604DashP6.NY16_DOT); - cdc.add(FCDotDEC2701DashPX0.ESC68_DEC0801_E16); - cdc.add(FCDotDEC0801DashE16.ESC68_PIE); + cdc.add(FCDotDEC2701DashPX0.ESC68_2PIE); cdc.add(FCDotCDC1604DashP6.NX26_Z); // select lower case cdc.add(FCDotCDC1604DashP6.NX10_J); cdc.add(FCDotCDC1604DashP6.NX11_K); @@ -66,20 +63,17 @@ public class FourCornerUnicodeDisplayTest { cdc.add(FCDotCDC1604DashP6.NX15_O); Assertions.assertEquals("ab BCD.jklmO", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); - //Assertions.assertEquals("␃␃␁ZA␃␃␁ZB BCD.␃␃␁ZJKLM␃␃␃O", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); - Assertions.assertEquals("␇␘␆¿¿¿ZA␇␘␆¿¿¿ZB␇␆␆¿¡¿BCD.␇␘␆¿¿¿ZJKLM␘␘␘O", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); + Assertions.assertEquals("␇␇␘ZA␇␇␘ZB␘␆␆ABCD.␇␇␘ZJKLM␘␘␘O", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); } @Test public void testNumberTerminatorOutOfRange() throws Exception { List cdc = new ArrayList<>(); cdc.add(FCDotCDC1604DashP6.NX24_X); // = X - cdc.add(FCDotDEC2701DashPX0.ESC68_DEC0801_E16); - cdc.add(FCDotDEC0801DashE16.ESC68_PIE); + cdc.add(FCDotDEC2701DashPX0.ESC68_2PIE); cdc.add(FCDotCDC1604DashP6.NY10_CARET); // ^ cdc.add(FCDotCDC1604DashP6.NY06_PERCENT); // = % - cdc.add(FCDotDEC2701DashPX0.ESC68_DEC0801_E16); - cdc.add(FCDotDEC0801DashE16.ESC68_PIE); + cdc.add(FCDotDEC2701DashPX0.ESC68_2PIE); cdc.add(FCDotCDC1604DashP6.NY01_AT); cdc.add(FCDotCDC1604DashP6.NX11_K); // = K @@ -89,12 +83,10 @@ public class FourCornerUnicodeDisplayTest { @Test public void testNumberPieOutOfRange() throws Exception { List cdc = new ArrayList<>(); - cdc.add(FCDotDEC2701DashPX0.ESC68_DEC0801_E16); - cdc.add(FCDotDEC0801DashE16.ESC68_PIE); + cdc.add(FCDotDEC2701DashPX0.ESC68_2PIE); cdc.add(FCDotCDC1604DashP6.NX01_A); cdc.add(FCDotCDC1604DashP6.NX02_B); // B - cdc.add(FCDotDEC2701DashPX0.ESC68_DEC0801_E16); - cdc.add(FCDotDEC0801DashE16.ESC68_PIE); + cdc.add(FCDotDEC2701DashPX0.ESC68_2PIE); cdc.add(FCDotCDC1604DashP6.NX10_J); cdc.add(FCDotCDC1604DashP6.NX04_D); // 3 cdc.add(FCDotCDC1604DashP6.NX11_K); // K diff --git a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeImportTest.java b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeImportTest.java index 12de17e..8c5cad1 100644 --- a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeImportTest.java +++ b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeImportTest.java @@ -33,8 +33,8 @@ import org.x4o.fc18.cake2.FourCornerX18CakePointSequence; import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash10; import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash26; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC0801DashE19; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; /** * Tests four corner unicode import. @@ -64,22 +64,18 @@ public class FourCornerUnicodeImportTest { @Test public void testAsciiLower() throws Exception { List cdc = FourCornerUnicodeImport.strict().convertToX06("foobar"); + Iterator cdi = cdc.iterator(); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(13, cdc.size()); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X2, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(1)); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1, cdc.get(2)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(3)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(4)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(5)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(6)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(7)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(8)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(9)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(10)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(11)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(12)); + Assertions.assertEquals(8, cdc.size()); + Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_2PIE, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdi.next()); String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc); Assertions.assertEquals("foobar", out); @@ -88,25 +84,21 @@ public class FourCornerUnicodeImportTest { @Test public void testAsciiMixedX06() throws Exception { List cdc = FourCornerUnicodeImport.strict().convertToX06("fooBAR"); + Iterator cdi = cdc.iterator(); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(16, cdc.size()); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X2, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(1)); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1, cdc.get(2)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(3)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(4)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(5)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(6)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(7)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(8)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(9)); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(10)); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(11)); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(12)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(13)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(14)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(15)); + Assertions.assertEquals(11, cdc.size()); + Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_2PIE, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdi.next()); String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc); Assertions.assertEquals("fooBAR", out); @@ -115,21 +107,19 @@ public class FourCornerUnicodeImportTest { @Test public void testAsciiMixedX08() throws Exception { List cdc = FourCornerUnicodeImport.strict().convertToX08("fooBAR"); + Iterator cdi = cdc.iterator(); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(12, cdc.size()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E16, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(1)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(2)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(3)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(4)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(5)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(6)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(7)); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC_STOP, cdc.get(8)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(9)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(10)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(11)); + Assertions.assertEquals(9, cdc.size()); + Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_2PIE, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdi.next()); + Assertions.assertEquals(FCDotDEC2701DashPX0.ESC_STOP, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdi.next()); String out = FourCornerUnicodeDisplay.text().renderFromX08(cdc); Assertions.assertEquals("fooBAR", out); @@ -180,24 +170,20 @@ public class FourCornerUnicodeImportTest { @Test public void testNumberX06() throws Exception { List cdc = FourCornerUnicodeImport.strict().convertToX06("01201337"); + Iterator cdi = cdc.iterator(); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(15, cdc.size()); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X2, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(1)); - Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1, cdc.get(2)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(3)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(4)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(5)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdc.get(6)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(7)); // 0 - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(8)); // 1 - Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdc.get(9)); // 2 - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(10)); // 0 - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(11)); // 1 - Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(12)); // 3 - Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(13)); // 3 - Assertions.assertEquals(FCDotCDC1604DashP6.NX08_H, cdc.get(14)); // 7 + Assertions.assertEquals(10, cdc.size()); + Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_2PIE, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); // 0 + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); // 1 + Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdi.next()); // 2 + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); // 0 + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); // 1 + Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdi.next()); // 3 + Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdi.next()); // 3 + Assertions.assertEquals(FCDotCDC1604DashP6.NX08_H, cdi.next()); // 7 String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc); Assertions.assertEquals("01201337", out); @@ -206,22 +192,20 @@ public class FourCornerUnicodeImportTest { @Test public void testNumberX08() throws Exception { List cdc = FourCornerUnicodeImport.strict().convertToX08("01201337"); + Iterator cdi = cdc.iterator(); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(13, cdc.size()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E16, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(1)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(2)); - Assertions.assertEquals(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION, cdc.get(3)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdc.get(4)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(5)); // 0 - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(6)); // 1 - Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdc.get(7)); // 2 - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(8)); // 0 - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(9)); // 1 - Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(10)); // 3 - Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(11)); // 3 - Assertions.assertEquals(FCDotCDC1604DashP6.NX08_H, cdc.get(12)); // 7 + Assertions.assertEquals(10, cdc.size()); + Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_2PIE, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdi.next()); + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); // 0 + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); // 1 + Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdi.next()); // 2 + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); // 0 + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); // 1 + Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdi.next()); // 3 + Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdi.next()); // 3 + Assertions.assertEquals(FCDotCDC1604DashP6.NX08_H, cdi.next()); // 7 String out = FourCornerUnicodeDisplay.text().renderFromX08(cdc); Assertions.assertEquals("01201337", out); @@ -249,33 +233,25 @@ public class FourCornerUnicodeImportTest { @Test public void testLineEndings() throws Exception { List cdc = FourCornerUnicodeImport.lossy().convertToX06("A\nB\rC\r\nD\nE\u001B\u0085F\n\r\n\r\r\n"); - Iterator cdi = cdc.iterator(); + Iterator cdi = cdc.iterator(); Assertions.assertNotNull(cdc); Assertions.assertTrue(cdi.hasNext()); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(22, cdc.size()); + Assertions.assertEquals(14, cdc.size()); Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E19, cdi.next()); - Assertions.assertEquals(FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL, cdi.next()); + Assertions.assertEquals(FCDotCMD5401Dash2D.CMD_F4TTY0001_NL, cdi.next()); Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E19, cdi.next()); - Assertions.assertEquals(FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL, cdi.next()); + Assertions.assertEquals(FCDotCMD5401Dash2D.CMD_F4TTY0001_NL, cdi.next()); Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdi.next()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E19, cdi.next()); - Assertions.assertEquals(FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL, cdi.next()); + Assertions.assertEquals(FCDotCMD5401Dash2D.CMD_F4TTY0001_NL, cdi.next()); Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdi.next()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E19, cdi.next()); - Assertions.assertEquals(FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL, cdi.next()); + Assertions.assertEquals(FCDotCMD5401Dash2D.CMD_F4TTY0001_NL, cdi.next()); Assertions.assertEquals(FCDotCDC1604DashP6.NX05_E, cdi.next()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E19, cdi.next()); - Assertions.assertEquals(FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL, cdi.next()); + Assertions.assertEquals(FCDotCMD5401Dash2D.CMD_F4TTY0001_NL, cdi.next()); Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdi.next()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E19, cdi.next()); - Assertions.assertEquals(FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL, cdi.next()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E19, cdi.next()); - Assertions.assertEquals(FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL, cdi.next()); - Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_DEC0801_E19, cdi.next()); - Assertions.assertEquals(FCDotDEC0801DashE19.TYPE_WRITER_TTY0001_NL, cdi.next()); + Assertions.assertEquals(FCDotCMD5401Dash2D.CMD_F4TTY0001_NL, cdi.next()); + Assertions.assertEquals(FCDotCMD5401Dash2D.CMD_F4TTY0001_NL, cdi.next()); + Assertions.assertEquals(FCDotCMD5401Dash2D.CMD_F4TTY0001_NL, cdi.next()); String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc); Assertions.assertEquals("A\nB\nC\nD\nE\nF\n\n\n", out); diff --git a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/fcdoc/FCDocPageWriterBaklava.java b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/fcdoc/FCDocPageWriterBaklava.java index e3ccd5c..fa8e455 100644 --- a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/fcdoc/FCDocPageWriterBaklava.java +++ b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/fcdoc/FCDocPageWriterBaklava.java @@ -29,7 +29,7 @@ import java.util.List; import org.x4o.fc18.FourCornerUnicodeDisplay; import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; import org.x4o.o2o.io.ContentWriterHtml.Tag; import org.x4o.o2o.io.sax3.ContentCloseable; import org.x4o.o2o.tdoc.ApiDocContentCss; diff --git a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotDEC0127DashPX0Test.java b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotDEC0127DashPX0Test.java index 2ed1d30..b15f456 100644 --- a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotDEC0127DashPX0Test.java +++ b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotDEC0127DashPX0Test.java @@ -26,6 +26,7 @@ import java.util.List; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; /** * Tests DEC encoding. diff --git a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotVT06Test.java b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotVT06Test.java index 4b2a868..8c0ec29 100644 --- a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotVT06Test.java +++ b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotVT06Test.java @@ -30,8 +30,8 @@ import org.junit.jupiter.api.Test; import org.x4o.fc18.FourCornerUnicodeDisplay; import org.x4o.fc18.FourCornerUnicodeMapper; import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; -import org.x4o.fc18.cake2.zero33.vt06.VTDash06DotZeroACursor; -import org.x4o.fc18.cake2.zero33.vt06.VTDash06DotZeroCClear; +import org.x4o.fc18.cake2.zero33.dec1.vt06.VTDash06DotZeroACursor; +import org.x4o.fc18.cake2.zero33.dec1.vt06.VTDash06DotZeroCClear; /** * Tests VT-06 encoding. @@ -45,12 +45,12 @@ public class FCDotVT06Test { public void testCusorGoto() throws Exception { List cdc = new ArrayList<>(); cdc.add(VTDash06DotZeroACursor.NX_CURSOR_GOTO); - cdc.addAll(FourCornerUnicodeMapper.DICTIONARY.toDecimalsX06(123)); + cdc.addAll(FourCornerUnicodeMapper.DICTIONARY.toDecimalsX06(123)); // TODO: fix these are the wrong, we need to use the txt grams version cdc.add(FCDotCDC1604DashP6._RAKA_QUESTION); cdc.addAll(FourCornerUnicodeMapper.DICTIONARY.toDecimalsX06(456)); cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION); - Assertions.assertEquals("␘␘␇AG␇␘␆¿¿¿JBCD?␇␘␆¿¿¿JEFG!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); + Assertions.assertEquals("␘␘␇AG␇␇␘JBCD?␇␇␘JEFG!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); // TODO: Fix lexer embedded escapes, and display external with single unicode escape sign //Assertions.assertEquals("?AG?BCD?EFG!", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); } @@ -62,6 +62,6 @@ public class FCDotVT06Test { cdc.addAll(FourCornerUnicodeMapper.DICTIONARY.toDecimalsX06(5)); cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION); - Assertions.assertEquals("␘␘␇CA␇␘␆¿¿¿JF!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); + Assertions.assertEquals("␘␘␇CA␇␇␘JF!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); } } diff --git a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/zion7/LexerNCRTest.java b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/zion7/LexerNCRTest.java index 700c56f..6795b34 100644 --- a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/zion7/LexerNCRTest.java +++ b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/zion7/LexerNCRTest.java @@ -31,7 +31,7 @@ import org.x4o.fc18.FourCornerUnicodeDisplay; import org.x4o.fc18.cake2.FourCornerDotCake; import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.FCDotDEC2701DashPX0; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; /** * Tests four corner lexer parts.