diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCake.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCake.java index c63b9c4..065a5f8 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCake.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCake.java @@ -51,10 +51,14 @@ import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash24; import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash25; import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash26; import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash27; -import org.x4o.o2o.fc18.zero33.FCDotAPL1604DashP8L; -import org.x4o.o2o.fc18.zero33.FCDotBYD1604DashP8H; +import org.x4o.o2o.fc18.zero33.FCDotAPL0127DashP7A; +import org.x4o.o2o.fc18.zero33.FCDotAPL0127DashP7B; +import org.x4o.o2o.fc18.zero33.FCDotAPL0127DashP7C; +import org.x4o.o2o.fc18.zero33.FCDotBYD0127DashP7D; +import org.x4o.o2o.fc18.zero33.FCDotBYD0127DashP7E; +import org.x4o.o2o.fc18.zero33.FCDotBYD0127DashP7F; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; -import org.x4o.o2o.fc18.zero33.FCDotDEC1604DashP7; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /// The dot cake index of four corner 18 bit words in cake slices which holds the cake points. /// @@ -66,12 +70,22 @@ public enum FourCornerDotCake { /// Character Dough Cake FC_CDC1604_P6(0, 64, FCDotCDC1604DashP6.values()), + /// Direct or Escaped Control - FC_DEC1604_P7(64, 64, FCDotDEC1604DashP7.values()), + FC_DEC0127_PX0(64, 27, FCDotDEC0127DashPX0.values()), + /// Array Programming Language - FC_APL1604_P8L(128, 64, FCDotAPL1604DashP8L.values()), + FC_APL0127_P7A(91, 27, FCDotAPL0127DashP7A.values()), + FC_APL0127_P7B(118, 27, FCDotAPL0127DashP7B.values()), + FC_APL0127_P7C(145, 27, FCDotAPL0127DashP7C.values()), + /// Block Your Display - FC_BYD1604_P8H(192, 64, FCDotBYD1604DashP8H.values()), + FC_BYD0127_P7D(172, 27, FCDotBYD0127DashP7D.values()), + FC_BYD0127_P7E(199, 27, FCDotBYD0127DashP7E.values()), + FC_BYD0127_P7F(226, 27, FCDotBYD0127DashP7F.values()), + + /// Mind the gap, for retro metro, mini maxi mosi members + __MIND_THE_GAP(253, 3), // =========== Allow pie terminators for symbols without escaping @@ -218,6 +232,7 @@ public enum FourCornerDotCake { private final int start; private final int stop; private final FourCornerX00PetitVidePoints[] videPoints; + private static final FourCornerDotCake[] VALUES = values(); private FourCornerDotCake(int start, int size) { this(start, size, new FourCornerX00PetitVidePoints[] {}); @@ -280,9 +295,9 @@ public enum FourCornerDotCake { return videPoints; } - public static Optional valueOfInt18(int smurfPaint) { - for (FourCornerDotCake cakeSlice : values()) { - if (cakeSlice.contains(smurfPaint)) { + public static Optional valueFromCakePoint(int cakePoint) { + for (FourCornerDotCake cakeSlice : VALUES) { + if (cakeSlice.contains(cakePoint)) { return Optional.of(cakeSlice); } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplay.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplay.java index 2d04677..1d66d39 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplay.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplay.java @@ -152,7 +152,7 @@ public class FourCornerUnicodeDisplay { return true; } } - if (FourCornerDotCake.FC_DEC1604_P7.equals(slice)) { + if (FourCornerDotCake.FC_DEC0127_PX0.equals(slice)) { if (offset < 6) { output.appendCodePoint(FCDotCDC1604DashP6.escapeSignUnicode(offset)); return true; @@ -201,6 +201,9 @@ public class FourCornerUnicodeDisplay { if (printedEscape(slice, offset)) { continue; } + //if (offset < 0 || offset > videPoints.length) { + // continue; + //} FourCornerX00PetitVidePoints videPoint = videPoints[offset]; if (videPoint.isX21()) { Arrays.stream(videPoint.toX21().codePoints()).forEach(v -> output.appendCodePoint(v)); @@ -256,5 +259,15 @@ public class FourCornerUnicodeDisplay { output.append(";"); } } + + @Override + public void burnRecursive(int line, int col) { + throw new IllegalStateException("loop"); + } + + @Override + public void burnInvalidSalah(int line, int col) { + throw new IllegalStateException("Invalid salah on line: " + line + ":" + col); + } } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeImport.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeImport.java index 601f43c..30fa647 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeImport.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeImport.java @@ -27,7 +27,7 @@ import java.util.List; import java.util.PrimitiveIterator; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; -import org.x4o.o2o.fc18.zero33.FCDotDEC1604DashP7; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; import org.x4o.o2o.octal.PrimordialOctalOrangeJuiceCord; import org.x4o.o2o.octal.PrimordialOctalOrangeString; @@ -185,8 +185,11 @@ public class FourCornerUnicodeImport { } if (ctx.codePoint >= '0' && ctx.codePoint <= '9') { if (!FCDotCDC1604DashP6.NX10_J.equals(ctx.cdcNumberTerminator)) { - ctx.output.add(FCDotCDC1604DashP6.__PIE68); - ctx.output.add(FCDotCDC1604DashP6.NX10_J); + if (ctx.bits == 6) { + ctx.output.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints(FCDotCDC1604DashP6.NX10_J)); + } else { + ctx.output.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX08MuffinPoints(FCDotCDC1604DashP6.NX10_J)); + } ctx.cdcNumberTerminator = FCDotCDC1604DashP6.NX10_J; } int cdcNumberOff = ctx.codePoint - '0'; @@ -196,11 +199,11 @@ public class FourCornerUnicodeImport { } if (ctx.cdcNumberTerminator != null) { ctx.cdcNumberTerminator = null; + //ctx.output.add(FCDotDEC0127DashP7G.ESC_STOP); if (ctx.bits == 6) { - ctx.output.add(FCDotCDC1604DashP6.__ESC6); - ctx.output.add(FCDotCDC1604DashP6.__ESC6); + ctx.output.addAll(FCDotDEC0127DashPX0.ESC_STOP.toX06BaklavaPoints()); } else { - ctx.output.add(FCDotDEC1604DashP7.__ESC_STOP); + ctx.output.add(FCDotDEC0127DashPX0.ESC_STOP); } } return false; @@ -212,8 +215,11 @@ public class FourCornerUnicodeImport { } if (ctx.codePoint >= 'a' && ctx.codePoint <= 'z') { if (!FCDotCDC1604DashP6.NX26_Z.equals(ctx.cdcCaseTerminator)) { - ctx.output.add(FCDotCDC1604DashP6.__PIE68); - ctx.output.add(FCDotCDC1604DashP6.NX26_Z); + if (ctx.bits == 6) { + ctx.output.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints(FCDotCDC1604DashP6.NX26_Z)); + } else { + ctx.output.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX08MuffinPoints(FCDotCDC1604DashP6.NX26_Z)); + } ctx.cdcCaseTerminator = FCDotCDC1604DashP6.NX26_Z; } int cdcNumberOff = ctx.codePoint - 'a'; @@ -224,10 +230,9 @@ public class FourCornerUnicodeImport { if (ctx.cdcCaseTerminator != null) { ctx.cdcCaseTerminator = null; if (ctx.bits == 6) { - ctx.output.add(FCDotCDC1604DashP6.__ESC6); - ctx.output.add(FCDotCDC1604DashP6.__ESC6); + ctx.output.addAll(FCDotDEC0127DashPX0.ESC_STOP.toX06BaklavaPoints()); } else { - ctx.output.add(FCDotDEC1604DashP7.__ESC_STOP); + ctx.output.add(FCDotDEC0127DashPX0.ESC_STOP); } } return false; diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeMapper.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeMapper.java index a36cecc..f28cbea 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeMapper.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeMapper.java @@ -27,12 +27,15 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.PrimitiveIterator; import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash11; import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash20; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /// Holds conversion maps between four corner int18 and unicode int21 points. /// @@ -100,6 +103,25 @@ public enum FourCornerUnicodeMapper { return int21ToVide.get(letter); } + public List embedFC18(List cakePoints) { + if (cakePoints.isEmpty()) { + return cakePoints; + } + List result = new ArrayList<>(); + result.addAll(FCDotDEC0127DashPX0.ESC68_FC18.toInt18BaklavaPoints()); + Iterator i = cakePoints.iterator(); + while (i.hasNext()) { + int cakePoint = i.next(); + for (int cakePointIdx=0;cakePointIdx<=6;cakePointIdx++) { + int octal = (cakePoint >> ((6-cakePointIdx)*3)) & 0b111; + int letter = octal + FCDotCDC1604DashP6.NX01_A.ordinal(); + result.add(letter); + } + } + result.addAll(FCDotDEC0127DashPX0.ESC_SEQ_SALAH.toInt18BaklavaPoints()); + return result; + } + public List embedUNI2K(String value) { List result = new ArrayList<>(value.length()); PrimitiveIterator.OfInt i = value.codePoints().iterator(); diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash01.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash01.java index 13a7d74..5f727a0 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash01.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash01.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_01. @@ -47,12 +48,12 @@ public enum FCDotPIE9CDash01 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX01_A, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash02.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash02.java index ec17fe3..c5cdcd5 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash02.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash02.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_02. @@ -48,12 +49,12 @@ public enum FCDotPIE9CDash02 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX02_B, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX02_B.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash03.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash03.java index 5f4b69e..37467f6 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash03.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash03.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_03. @@ -49,12 +50,12 @@ public enum FCDotPIE9CDash03 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX03_C, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX03_C.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash04.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash04.java index 6a9a5b1..ffcbbcf 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash04.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash04.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_04. @@ -50,12 +51,12 @@ public enum FCDotPIE9CDash04 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX04_D, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX04_D.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash05.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash05.java index c04f76d..ea60c93 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash05.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash05.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_05. @@ -51,12 +52,12 @@ public enum FCDotPIE9CDash05 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX05_E, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX05_E.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash06.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash06.java index e807532..656001a 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash06.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash06.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_06. @@ -52,12 +53,12 @@ public enum FCDotPIE9CDash06 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX06_F, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX06_F.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash07.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash07.java index cecce4b..c0ab7d4 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash07.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash07.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_07. @@ -53,12 +54,12 @@ public enum FCDotPIE9CDash07 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX07_G, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX07_G.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash08.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash08.java index a0b4ae7..bf326e6 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash08.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash08.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_08. @@ -54,12 +55,12 @@ public enum FCDotPIE9CDash08 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX08_H, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX08_H.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash09.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash09.java index 5857d46..4fdb84d 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash09.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash09.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_09. @@ -55,12 +56,12 @@ public enum FCDotPIE9CDash09 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX09_I, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX09_I.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash10.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash10.java index 4d09ce7..7ece6c2 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash10.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash10.java @@ -33,6 +33,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_10. @@ -61,12 +62,12 @@ public enum FCDotPIE9CDash10 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX10_J, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX10_J.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override @@ -79,6 +80,7 @@ public enum FCDotPIE9CDash10 implements FourCornerX06BaklavaPoints, FourCornerX0 return codePoints; } + @Deprecated static public List toDecimalsX06(int value) { return toDecimalsX00(value); } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash11.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash11.java index 8e65988..5112194 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash11.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash11.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_11. @@ -57,12 +58,12 @@ public enum FCDotPIE9CDash11 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX11_K, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX11_K.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash12.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash12.java index 605ec7c..22d256b 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash12.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash12.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_12. @@ -58,12 +59,12 @@ public enum FCDotPIE9CDash12 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX12_L, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX12_L.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash13.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash13.java index 221ec7b..eaf1dc5 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash13.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash13.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_13. @@ -59,12 +60,12 @@ public enum FCDotPIE9CDash13 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX13_M, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX13_M.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash14.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash14.java index 2d680cb..10da701 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash14.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash14.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_14. @@ -60,12 +61,12 @@ public enum FCDotPIE9CDash14 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX14_N, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX14_N.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash15.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash15.java index e492465..2ccaebc 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash15.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash15.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_15. @@ -61,12 +62,12 @@ public enum FCDotPIE9CDash15 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX15_O, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX15_O.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash16.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash16.java index a97b7db..74e0c0f 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash16.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash16.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_16. @@ -62,12 +63,12 @@ public enum FCDotPIE9CDash16 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX16_P, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX16_P.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash17.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash17.java index 0ee5305..47d447c 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash17.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash17.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_17. @@ -63,12 +64,12 @@ public enum FCDotPIE9CDash17 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX17_Q, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX17_Q.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash18.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash18.java index 1336267..39e5f29 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash18.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash18.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_18. @@ -64,12 +65,12 @@ public enum FCDotPIE9CDash18 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX18_R, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX18_R.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash19.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash19.java index 431969f..afcf878 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash19.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash19.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_19. @@ -65,12 +66,12 @@ public enum FCDotPIE9CDash19 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX19_S, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX19_S.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash20.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash20.java index 3bb0632..0e70c15 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash20.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash20.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_20. @@ -66,12 +67,12 @@ public enum FCDotPIE9CDash20 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX20_T, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX20_T.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash21.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash21.java index 3489d6b..f80f871 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash21.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash21.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_21. @@ -67,12 +68,12 @@ public enum FCDotPIE9CDash21 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX21_U, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX21_U.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash22.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash22.java index f4406b7..b018f4e 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash22.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash22.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_22. @@ -68,12 +69,12 @@ public enum FCDotPIE9CDash22 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX22_V, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX22_V.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash23.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash23.java index 09ae182..255e091 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash23.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash23.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_23. @@ -69,12 +70,12 @@ public enum FCDotPIE9CDash23 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX23_W, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX23_W.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash24.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash24.java index 4ed98dd..e92ce5c 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash24.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash24.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_24. @@ -70,12 +71,12 @@ public enum FCDotPIE9CDash24 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX24_X, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX24_X.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash25.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash25.java index ee79b06..4a89c76 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash25.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash25.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_25. @@ -71,12 +72,12 @@ public enum FCDotPIE9CDash25 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX25_Y, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX25_Y.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash26.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash26.java index 3fdf9dc..19ac090 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash26.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash26.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_26. @@ -72,12 +73,12 @@ public enum FCDotPIE9CDash26 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX26_Z, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX26_Z.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash27.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash27.java index 0e8155c..603caaf 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash27.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash27.java @@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Pie slice number symbols for NXX_27. @@ -73,12 +74,12 @@ public enum FCDotPIE9CDash27 implements FourCornerX06BaklavaPoints, FourCornerX0 @Override public int[] baklavaPoints() { - return muffinPoints(); + return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX27_AMPERSAND, ordinal()); } @Override public int[] muffinPoints() { - return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX27_AMPERSAND.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + return baklavaPoints(); } @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL0127DashP7A.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL0127DashP7A.java new file mode 100644 index 0000000..632af03 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL0127DashP7A.java @@ -0,0 +1,143 @@ +/* + * Copyright (c) 2004-2014, Willem Cazander + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * 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.o2o.fc18.zero33; + +import org.x4o.o2o.fc18.FourCornerDotCake; +import org.x4o.o2o.fc18.FourCornerX06BaklavaPoints; +import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; +import org.x4o.o2o.fc18.FourCornerX21CodePoints; + +/// "FC.APL0127-P8A" Four Corner A Programming Language symbols cake slice of cake points. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +/// +public enum FCDotAPL0127DashP7A implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + /// SL080000 One is pi + CIRCLE('○'), + + // === 2 + 6 boxes + + /// SL360000 + QUAD('⎕'), + /// SL260000 + SQUISH_QUAD('⌷'), + /// SL140000 + QUAD_DIVIDE('⌹'), + /// NEW from Dynlog APL + QUAD_DOT2('⍠'), + /// NEW from Dynlog APL + QUAD_BOX3('⌸'), + /// NEW from Dynlog APl + QUAD_QUAD('⌺'), + + // === 8 directions T arrows + + /// SL610000 + UP_ARROW('↑'), + /// SL600000 + RIGHT_ARROW('→'), + /// SL620000 + DOWN_ARROW('↓'), + /// SL590000 + LEFT_ARROW('←'), + /// SL220000 + UP_TACK('⊤'), + /// SL350000 + RIGHT_TACK('⊣'), + /// SL230000 + DOWN_TACK('⊥'), + /// SL340000 + LEFT_TACK('⊢'), + + // === 8 mirrors + + /// SL190000 + DOWN_TACK_JOT('⍎'), + /// SL200000 + UP_TACK_JOT('⍕'), + /// SL150000 + SLASH_BAR('⌿'), + /// SL160000 + SLOPE_BAR('⍀'), + /// SL010000 + UP_STILE('⌈'), + /// SL020000 + DOWN_STILE('⌊'), + /// SL030000 (used in GNU GPL) + DEL('∇'), + /// SL060000 (used in GNU GPL) + DELTA('∆'), + + + // === 8 Oooohhhs + + /// SL110000 + CIRCLE_STAR('⍟'), + /// SL090000 + CIRCLE_STILE('⌽'), + /// SL120000 + CIRCLE_BAR('⊖'), + /// SL100000 + CIRCLE_SLOPE('⍉'), + + + ; + + static final private FCDotAPL0127DashP7A[] VALUES = values(); // values() is slow method + private final int codePoint; + + private FCDotAPL0127DashP7A(char codePoint) { + this.codePoint = codePoint; + } + + @Override + public int[] baklavaPoints() { + return FCDotDEC0127DashPX0.ESC6_APL0127_P7A.baklavaPointsP7(ordinal()); + } + + @Override + public int[] muffinPoints() { + return cakePoints(); + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_APL0127_P7A.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return new int[] {codePoint}; + } + + static public int length() { + return VALUES.length; + } + + static public FCDotAPL0127DashP7A indexOf(int idx) { + return VALUES[idx]; + } +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashP8L.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL0127DashP7B.java similarity index 51% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashP8L.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL0127DashP7B.java index dd3a2a0..2ac3f04 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashP8L.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL0127DashP7B.java @@ -28,83 +28,13 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; -/// "FC.APL1604-P8L" Four Corner A Programming Language symbols cake slice of cake points. +/// "FC.APL0127-P8B" Four Corner A Programming Language symbols cake slice of cake points. /// /// @author Willem Cazander /// @version 1.0 Jan 1, 2025 /// -public enum FCDotAPL1604DashP8L implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { - - /// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers. - __NUL_APL('\u0000'), +public enum FCDotAPL0127DashP7B implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { - /// SL080000 One is pi - CIRCLE('○'), - - // === 2 + 6 boxes - - /// SL360000 - QUAD('⎕'), - /// SL260000 - SQUISH_QUAD('⌷'), - /// SL140000 - QUAD_DIVIDE('⌹'), - /// NEW from Dynlog APL - QUAD_DOT2('⍠'), - /// NEW from Dynlog APL - QUAD_BOX3('⌸'), - /// NEW from Dynlog APl - QUAD_QUAD('⌺'), - - // === 8 directions T arrows - - /// SL610000 - UP_ARROW('↑'), - /// SL600000 - RIGHT_ARROW('→'), - /// SL620000 - DOWN_ARROW('↓'), - /// SL590000 - LEFT_ARROW('←'), - /// SL220000 - UP_TACK('⊤'), - /// SL350000 - RIGHT_TACK('⊣'), - /// SL230000 - DOWN_TACK('⊥'), - /// SL340000 - LEFT_TACK('⊢'), - - // === 8 mirrors - - /// SL190000 - DOWN_TACK_JOT('⍎'), - /// SL200000 - UP_TACK_JOT('⍕'), - /// SL150000 - SLASH_BAR('⌿'), - /// SL160000 - SLOPE_BAR('⍀'), - /// SL010000 - UP_STILE('⌈'), - /// SL020000 - DOWN_STILE('⌊'), - /// SL030000 (used in GNU GPL) - DEL('∇'), - /// SL060000 (used in GNU GPL) - DELTA('∆'), - - - // === 8 Oooohhhs - - /// SL110000 - CIRCLE_STAR('⍟'), - /// SL090000 - CIRCLE_STILE('⌽'), - /// SL120000 - CIRCLE_BAR('⊖'), - /// SL100000 - CIRCLE_SLOPE('⍉'), /// NEW from dynlog APL CIRCLE_DOT_XL('⍥'), /// NEW from dynlog APL @@ -177,82 +107,19 @@ public enum FCDotAPL1604DashP8L implements FourCornerX06BaklavaPoints, FourCorne DOWN_SHOE('∪'), /// SL400000 UP_SHOE('∩'), - /// SL720000 - EPSILON('∊'), - /// NEW from dynslog APL - LEFT_SHOE_UNDERBAR('⊆'), - /// SL420000 - LEFT_SHOE('⊂'), - /// SL740000 - RHO('⍴'), - /// NEW from dynlog APL - MINUS_COMMA('⍪'), - - /// --------- Left over from IBM APL - - /// SL210000 - UP_SHOE_NULL('⍝'), - /// SL630000 - OVERBAR('‾'), - /// SL710000 - ALPHA('⍺'), - /// SL750000 - OMEGA('⍵'), - - - /// SL040000 -// DEL_TILDE('⍫'), /// === ⎕LOCK - /// SL130000 -// QUAD_QUOTE('⍞'), // GNU APL: stdin and debug out - /// SL270000 -// QUAD_JOT('⌻'), // file meta info - /// SL280000 -// QUAD_SLOPE('⍂'), // was expand - /// SL320000 -// DIAERESIS_DOT('∵'), // each item - // SL330000 -// DELTA_UNDERBAR('⍙'), // GNU APL: user var: starts (A-Z) or one of the 3 characters _, ∆ , or ⍙ - /// SL370000 -// LESS_GREATER('⋄'), // each stmt - /// SL480000 -// CIRCLE_PLUS('⊕'), // group - /// SL490000 -// CIRCLE_TIMES('⊗'), // index of - - - // SL290000 = Unsupported = Ampersand Underbar - // SL310000 = Unsupported = OUT Symbol = Not used by IBM ? - // SL380000 = Stile = FCDotCDC1604DashP6.BAR_VERTICAL - // SL390000 = undefined - // SL440000 = Underbar = FCDotCDC1604DashP6.BAR_UNDER - // SL460000 = Tilde = FCDotCDC1604DashP6._TILDE - // SL470000 = undefined - // SL580000 = Quote Dot = FCDotCDC1604DashP6._EXCLAMATION - // SL640000 = Slope = FCDotCDC1604DashP6.BAR_V_LEFT - // SL650000 = Star = FCDotCDC1604DashP6._ASTRIKS - // SL660000 = Quota = FCDotCDC1604DashP6._APOSTROPHE - // SL670000 = Left Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_LEFT - // SL680000 = Right Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_RIGHT - // SL700000 = Query = FCDotCDC1604DashP6._QUESTION - // SL770000 = Left Bracket = FCDotCDC1604DashP6.TAG_SQUARE_LEFT - // SL780000 = Right Bracket = FCDotCDC1604DashP6.TAG_SQUARE_RIGHT - // SL800000 = Semicolon = FCDotCDC1604DashP6._SEMICOLON - // SL830000 = Colon = FCDotCDC1604DashP6._COLON - // SL840000 = Dot = FCDotCDC1604DashP6._DOT - // SL850000 = Comma = FCDotCDC1604DashP6._COMMA ; - static final private FCDotAPL1604DashP8L[] VALUES = values(); // values() is slow method + static final private FCDotAPL0127DashP7B[] VALUES = values(); // values() is slow method private final int codePoint; - private FCDotAPL1604DashP8L(char codePoint) { + private FCDotAPL0127DashP7B(char codePoint) { this.codePoint = codePoint; } @Override public int[] baklavaPoints() { - return new int[] {FCDotCDC1604DashP6.__ESC6.ordinal(), FCDotDEC1604DashP7.__ESC6_APL.ordinal(), ordinal()}; + return FCDotDEC0127DashPX0.ESC6_APL0127_P7B.baklavaPointsP7(ordinal()); } @Override @@ -262,7 +129,7 @@ public enum FCDotAPL1604DashP8L implements FourCornerX06BaklavaPoints, FourCorne @Override public int[] cakePoints() { - return new int[] {FourCornerDotCake.FC_APL1604_P8L.getStart() + ordinal()}; + return new int[] {FourCornerDotCake.FC_APL0127_P7B.getStart() + ordinal()}; } @Override @@ -274,7 +141,7 @@ public enum FCDotAPL1604DashP8L implements FourCornerX06BaklavaPoints, FourCorne return VALUES.length; } - static public FCDotAPL1604DashP8L indexOf(int idx) { + static public FCDotAPL0127DashP7B indexOf(int idx) { return VALUES[idx]; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL0127DashP7C.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL0127DashP7C.java new file mode 100644 index 0000000..9baafb3 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL0127DashP7C.java @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2004-2014, Willem Cazander + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * 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.o2o.fc18.zero33; + +import org.x4o.o2o.fc18.FourCornerDotCake; +import org.x4o.o2o.fc18.FourCornerX06BaklavaPoints; +import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; +import org.x4o.o2o.fc18.FourCornerX21CodePoints; + +/// "FC.APL0127-P8C" Four Corner A Programming Language symbols cake slice of cake points. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +/// +public enum FCDotAPL0127DashP7C implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + /// SL720000 + EPSILON('∊'), + /// NEW from dynslog APL + LEFT_SHOE_UNDERBAR('⊆'), + /// SL420000 + LEFT_SHOE('⊂'), + /// SL740000 + RHO('⍴'), + /// NEW from dynlog APL + MINUS_COMMA('⍪'), + + /// --------- Left over from IBM APL + + /// SL210000 + UP_SHOE_NULL('⍝'), + /// SL630000 + OVERBAR('‾'), + /// SL710000 + ALPHA('⍺'), + /// SL750000 + OMEGA('⍵'), + + + /// SL040000 + DEL_TILDE('⍫'), /// === ⎕LOCK + /// SL130000 + QUAD_QUOTE('⍞'), // GNU APL: stdin and debug out + /// SL270000 + QUAD_JOT('⌻'), // file meta info + /// SL280000 + QUAD_SLOPE('⍂'), // was expand + /// SL320000 + DIAERESIS_DOT('∵'), // each item + // SL330000 + DELTA_UNDERBAR('⍙'), // GNU APL: user var: starts (A-Z) or one of the 3 characters _, ∆ , or ⍙ + /// SL370000 + LESS_GREATER('⋄'), // each stmt + /// SL480000 + CIRCLE_PLUS('⊕'), // group + /// SL490000 + CIRCLE_TIMES('⊗'), // index of + + OPEN_19('?'), + OPEN_20('?'), + OPEN_21('?'), + OPEN_22('?'), + OPEN_23('?'), + OPEN_24('?'), + OPEN_25('?'), + OPEN_26('?'), + OPEN_27('?'), + + + + // SL290000 = Unsupported = Ampersand Underbar + // SL310000 = Unsupported = OUT Symbol = Not used by IBM ? + // SL380000 = Stile = FCDotCDC1604DashP6.BAR_VERTICAL + // SL390000 = undefined + // SL440000 = Underbar = FCDotCDC1604DashP6.BAR_UNDER + // SL460000 = Tilde = FCDotCDC1604DashP6._TILDE + // SL470000 = undefined + // SL580000 = Quote Dot = FCDotCDC1604DashP6._EXCLAMATION + // SL640000 = Slope = FCDotCDC1604DashP6.BAR_V_LEFT + // SL650000 = Star = FCDotCDC1604DashP6._ASTRIKS + // SL660000 = Quota = FCDotCDC1604DashP6._APOSTROPHE + // SL670000 = Left Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_LEFT + // SL680000 = Right Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_RIGHT + // SL700000 = Query = FCDotCDC1604DashP6._QUESTION + // SL770000 = Left Bracket = FCDotCDC1604DashP6.TAG_SQUARE_LEFT + // SL780000 = Right Bracket = FCDotCDC1604DashP6.TAG_SQUARE_RIGHT + // SL800000 = Semicolon = FCDotCDC1604DashP6._SEMICOLON + // SL830000 = Colon = FCDotCDC1604DashP6._COLON + // SL840000 = Dot = FCDotCDC1604DashP6._DOT + // SL850000 = Comma = FCDotCDC1604DashP6._COMMA + + ; + + static final private FCDotAPL0127DashP7C[] VALUES = values(); // values() is slow method + private final int codePoint; + + private FCDotAPL0127DashP7C(char codePoint) { + this.codePoint = codePoint; + } + + @Override + public int[] baklavaPoints() { + return FCDotDEC0127DashPX0.ESC6_APL0127_P7A.baklavaPointsP7(ordinal()); + } + + @Override + public int[] muffinPoints() { + return cakePoints(); + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_APL0127_P7C.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return new int[] {codePoint}; + } + + static public int length() { + return VALUES.length; + } + + static public FCDotAPL0127DashP7C indexOf(int idx) { + return VALUES[idx]; + } +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashP8H.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD0127DashP7D.java similarity index 69% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashP8H.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD0127DashP7D.java index a1e4099..0f42f46 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashP8H.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD0127DashP7D.java @@ -28,15 +28,12 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; import org.x4o.o2o.fc18.FourCornerX21CodePoints; -/// "FC.BYD1604-P8H" Four Corner Block Your Display terminal application. +/// "FC.BYD0127-P8D" Four Corner Block Your Display terminal application. /// /// @author Willem Cazander /// @version 1.0 Jan 1, 2025 /// -public enum FCDotBYD1604DashP8H implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { - - /// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers. - __NUL_BYD('\u0000'), +public enum FCDotBYD0127DashP7D implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { // 32 chars are CP/M Plus aligned @@ -69,58 +66,18 @@ public enum FCDotBYD1604DashP8H implements FourCornerX06BaklavaPoints, FourCorne BOX1_9('┘'), BOX1_A('─'), BOX1_B('┴'), - BOX1_C('┐'), - BOX1_D('┤'), - BOX1_E('┬'), - BOX1_F('┼'), - - // 32 chars aligned with unicode "Block Elements" - - U2580('▀'), - U2581('▁'), - U2582('▂'), - U2583('▃'), - U2584('▄'), - U2585('▅'), - U2586('▆'), - U2587('▇'), - U2588('█'), - U2589('▉'), - U258A('▊'), - U258B('▋'), - U258C('▌'), - U258D('▍'), - U258E('▎'), - U258F('▏'), - - U2590('▐'), - U2591('░'), - U2592('▒'), - U2593('▓'), - U2594('▔'), - U2595('▕'), - U2596('▖'), - U2597('▗'), - U2598('▘'), - U2599('▙'), - U259A('▚'), - U259B('▛'), - U259C('▜'), - U259D('▝'), - U259E('▞'), - U259F('▟'), ; - static final private FCDotBYD1604DashP8H[] VALUES = values(); // values() is slow method + static final private FCDotBYD0127DashP7D[] VALUES = values(); // values() is slow method private final int codePoint; - private FCDotBYD1604DashP8H(char codePoint) { + private FCDotBYD0127DashP7D(char codePoint) { this.codePoint = codePoint; } @Override public int[] baklavaPoints() { - return new int[] {FCDotCDC1604DashP6.__ESC6.ordinal(), FCDotDEC1604DashP7.__ESC6_BYD.ordinal(), ordinal()}; + return FCDotDEC0127DashPX0.ESC6_BYD0127_P7D.baklavaPointsP7(ordinal()); } @Override @@ -130,7 +87,7 @@ public enum FCDotBYD1604DashP8H implements FourCornerX06BaklavaPoints, FourCorne @Override public int[] cakePoints() { - return new int[] {FourCornerDotCake.FC_BYD1604_P8H.getStart() + ordinal()}; + return new int[] {FourCornerDotCake.FC_BYD0127_P7D.getStart() + ordinal()}; } @Override @@ -142,7 +99,7 @@ public enum FCDotBYD1604DashP8H implements FourCornerX06BaklavaPoints, FourCorne return VALUES.length; } - static public FCDotBYD1604DashP8H indexOf(int idx) { + static public FCDotBYD0127DashP7D indexOf(int idx) { return VALUES[idx]; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD0127DashP7E.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD0127DashP7E.java new file mode 100644 index 0000000..4b075ad --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD0127DashP7E.java @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2004-2014, Willem Cazander + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * 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.o2o.fc18.zero33; + +import org.x4o.o2o.fc18.FourCornerDotCake; +import org.x4o.o2o.fc18.FourCornerX06BaklavaPoints; +import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; +import org.x4o.o2o.fc18.FourCornerX21CodePoints; + +/// "FC.BYD0127-P8E" Four Corner Block Your Display terminal application. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +/// +public enum FCDotBYD0127DashP7E implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + BOX1_C('┐'), + BOX1_D('┤'), + BOX1_E('┬'), + BOX1_F('┼'), + + // 32 chars aligned with unicode "Block Elements" + + U2580('▀'), + U2581('▁'), + U2582('▂'), + U2583('▃'), + U2584('▄'), + U2585('▅'), + U2586('▆'), + U2587('▇'), + U2588('█'), + U2589('▉'), + U258A('▊'), + U258B('▋'), + U258C('▌'), + U258D('▍'), + U258E('▎'), + U258F('▏'), + + U2590('▐'), + U2591('░'), + U2592('▒'), + U2593('▓'), + U2594('▔'), + U2595('▕'), + U2596('▖'), + ; + + static final private FCDotBYD0127DashP7E[] VALUES = values(); // values() is slow method + private final int codePoint; + + private FCDotBYD0127DashP7E(char codePoint) { + this.codePoint = codePoint; + } + + @Override + public int[] baklavaPoints() { + return FCDotDEC0127DashPX0.ESC6_BYD0127_P7E.baklavaPointsP7(ordinal()); + } + + @Override + public int[] muffinPoints() { + return cakePoints(); + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_BYD0127_P7E.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return new int[] {codePoint}; + } + + static public int length() { + return VALUES.length; + } + + static public FCDotBYD0127DashP7E indexOf(int idx) { + return VALUES[idx]; + } +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD0127DashP7F.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD0127DashP7F.java new file mode 100644 index 0000000..57c7579 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD0127DashP7F.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2004-2014, Willem Cazander + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * 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.o2o.fc18.zero33; + +import org.x4o.o2o.fc18.FourCornerDotCake; +import org.x4o.o2o.fc18.FourCornerX06BaklavaPoints; +import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; +import org.x4o.o2o.fc18.FourCornerX21CodePoints; + +/// "FC.BYD0127-P8F" Four Corner Block Your Display terminal application. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +/// +public enum FCDotBYD0127DashP7F implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + U2597('▗'), + U2598('▘'), + U2599('▙'), + U259A('▚'), + U259B('▛'), + U259C('▜'), + U259D('▝'), + U259E('▞'), + U259F('▟'), + + OPEN_10('?'), + OPEN_11('?'), + OPEN_12('?'), + OPEN_13('?'), + OPEN_14('?'), + OPEN_15('?'), + OPEN_16('?'), + OPEN_17('?'), + + OPEN_18('?'), + OPEN_19('?'), + OPEN_20('?'), + OPEN_21('?'), + OPEN_22('?'), + OPEN_23('?'), + OPEN_24('?'), + OPEN_25('?'), + OPEN_26('?'), + OPEN_27('?'), + + ; + + static final private FCDotBYD0127DashP7F[] VALUES = values(); // values() is slow method + private final int codePoint; + + private FCDotBYD0127DashP7F(char codePoint) { + this.codePoint = codePoint; + } + + @Override + public int[] baklavaPoints() { + return FCDotDEC0127DashPX0.ESC6_BYD0127_P7F.baklavaPointsP7(ordinal()); + } + + @Override + public int[] muffinPoints() { + return cakePoints(); + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_BYD0127_P7F.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return new int[] {codePoint}; + } + + static public int length() { + return VALUES.length; + } + + static public FCDotBYD0127DashP7F indexOf(int idx) { + return VALUES[idx]; + } +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6.java index 261f7ff..deab390 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6.java @@ -47,17 +47,12 @@ public enum FCDotCDC1604DashP6 implements FourCornerX06BaklavaPoints, FourCorner // LMNO PQRS TUVW XYZ& /// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers. - __NUL('\u0000'), - /// 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 - __PIE68('\u0001'), - /// Select packed pie terminator number for 6 and 8 bit systems. - /// First NXX P6 is terminator select, than next NXX P6 are values, until out of range. - __NCR68('\u0002'), - /// Escape to direct control code for 6 bit systems. - __ESC6('\u0003'), + _NUL('\u0000'), + + /// Escape to direct control codes for 6 bit systems requires an sequence of 3 escapes. + _ESC6_X1('\u0001'), + _ESC6_X2('\u0002'), + _ESC6_X3('\u0003'), _NEWLINE('\n'), _SPACE(' '), QUESTION('?'), @@ -160,6 +155,10 @@ public enum FCDotCDC1604DashP6 implements FourCornerX06BaklavaPoints, FourCorner return VALUES[idx]; } + static public boolean isEscape6(int cakePoint) { + return cakePoint == _ESC6_X1.ordinal() || cakePoint == _ESC6_X2.ordinal() || cakePoint == _ESC6_X3.ordinal(); + } + static public char escapeSignUnicode(int idx) { if (idx == 0) { return '␀'; diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashP7.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC0127DashPX0.java similarity index 54% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashP7.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC0127DashPX0.java index a7d5b86..388c8c1 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashP7.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC0127DashPX0.java @@ -22,87 +22,116 @@ */ package org.x4o.o2o.fc18.zero33; +import java.util.ArrayList; +import java.util.List; + import org.x4o.o2o.fc18.FourCornerDotCake; import org.x4o.o2o.fc18.FourCornerX06BaklavaPoints; import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** - * "FC.DEC1604-P7" Four Corner dot Direct or Escaped Control in grid of 16 by 04 of dashed Escape codes V2. + * "FC.DEC0127-PX0" Four Corner dot Direct or Escaped Control in grid of 1 by 27 of dashed CDC invisible page X Zero codes. * - * A 6 bit computer use the __ESC6 to use these 64 control codes. - * - * A 8 or 18 or 144 bit computer uses this direct as the second 64 part page. (thus number 64 to 127) - * - * Defines VT-NX01 which are terminal escape sequences for text based applications. + * NOTE: Only escapes starting with _ESC6_X3 are allowed to embed in a escape sequence. * * @author Willem Cazander * @version 1.0 Dec 24, 2024 */ -public enum FCDotDEC1604DashP7 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints { +public enum FCDotDEC0127DashPX0 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints { - /// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers. - __NUL_DEC, - /// On 6 bit escape to the APL baklava for single char. - __ESC6_APL, - /// On 6 bit escape to the BYD baklave for single char. - __ESC6_BYD, - /// Duel escape stops the escaped __PIE68 or __NCR68 escape sequence data mode. - /// VT-100 Manual: "ESC also cancels any escape sequence". - __ESC_STOP, - /// On 6/8 bit escape to 18 bit four corner cake points. - /// Stream per six octals as CDC chars in NX01_A to NX08_H, until any out of range P6. - __ESC68_FC18, + // =========== External argumented escape sequence, always has closed ending. (MUST terminate with ESC_SEQ_SALAH) + + /// _ESC6_X1 _ESC6_X1 _ESC6_X1 + _ESC_USER_1, + /// _ESC6_X1 _ESC6_X1 _ESC6_X2 + _ESC_USER_2, + /// _ESC6_X1 _ESC6_X1 _ESC6_X3 + _ESC_USER_3, + /// _ESC6_X1 _ESC6_X2 _ESC6_X1 + _ESC_USER_4, + /// _ESC6_X1 _ESC6_X2 _ESC6_X2 + _ESC_USER_5, + /// _ESC6_X1 _ESC6_X2 _ESC6_X3 + /// Virtual Typewriter Six bit control support with argumented commands which MUST end with ESC_SEQ_SALAH. + ESC_VT06, + /// _ESC6_X1 _ESC6_X3 _ESC6_X1 + __ESC_RESERVED_A7, + /// _ESC6_X1 _ESC6_X3 _ESC6_X2 + __ESC_RESERVED_A8, + /// _ESC6_X1 _ESC6_X3 _ESC6_X3 + __ESC_RESERVED_A9, + + // =========== Internal escape sequence, mixes ending + + /// _ESC6_X2 _ESC6_X1 _ESC6_X1 + __ESC_RESERVED_B1, + /// _ESC6_X2 _ESC6_X1 _ESC6_X2 + __ESC_RESERVED_B2, + /// _ESC6_X2 _ESC6_X1 _ESC6_X3 + __ESC_RESERVED_B3, + /// _ESC6_X2 _ESC6_X2 _ESC6_X1 + __ESC_RESERVED_B4, + /// _ESC6_X2 _ESC6_X2 _ESC6_X2 + __ESC_RESERVED_B5, + + /// _ESC6_X2 _ESC6_X2 _ESC6_X3 /// To escape the question of undefined behavior, we define it as dark nether space, so we can see it in C++ /// Using dark mode nether requires 18 bit cake points as we embed 15 bit data point in the cake; /// - /// __ESC18_NETHER VT_RAKA_AT - /// + ?slug + ?VT_RAKA_AT (None or 72 to 576 bit Número2 Lingua tree key per 72 bit slug) - /// + ?slug + ?VT_RAKA_AT (Up to 8 slug arguments to have max key) - /// + VT_SALAH + data-block as FC_NETHER in 15 bit embedded octals + /// __ESC18_NETHER + /// + ?slug + ?ESC_SEQ_RAKA_AT (None or 72 to 576 bit Número2 Lingua tree key per 72 bit slug) + /// + ?slug + ?ESC_SEQ_RAKA_AT (Up to 8 slug arguments to have max key) + /// + ESC_SEQ_SALAH + data-block as FC_NETHER in 15 bit embedded octals /// - /// NOTE: key slug format is <6><6><6><9><6><6><6><6><6><6><9> encoded in FC_OCE0808_H6 and FC_OCE0808_H9 + /// NOTE: key slug format is <6><6><6><9><6><6><6><6><6><6><9> encoded as 4 bit octals with CDC MX01_A++ "letnums". /// /// With dark nether space you can add unnamed and real dark(key is optional) undefined data segments in text. /// With an nether DB enabled text editor, it can render for example vector graphics in source like HolyC of TempleOS. /// The Número2 Lingua key is a sort of mime-type lookup, and later gets also definition structure and step code for type. - __ESC18_NETHER, + ESC_NETHER, + /// _ESC6_X2 _ESC6_X3 _ESC6_X1 + /// End of argumented escape sequence prayer. + ESC_SEQ_SALAH, + /// _ESC6_X2 _ESC6_X3 _ESC6_X2 + /// Next argument separator for escape command sequences which MUST end with ESC_SEQ_SALAH. + /// Only allowed cake points are 7-63 or from { to & 6 bit chars. + ESC_SEQ_RAKA_AT, + /// _ESC6_X2 _ESC6_X3 _ESC6_X3 + /// On 6/8 bit escape to 18 bit four corner cake points. + /// Stream per six octals as CDC chars in NX01_A to NX08_H, and MUST end with ESC_SEQ_SALAH. + ESC68_FC18, - /// VT-NX01 = __ESC6 ? = Begin and next argument separator for escape command sequences which MUST end with __ESC_NX_EXECUTE. - VT_RAKA_AT, - /// VT-NX01 = __ESC6 ! = End of escape command sequence. - VT_SALAH, + // =========== Embeddable sequences, with open or manual stopped or auto stopped ending. (stop on out of range) - DEC_TAG_CURLY_LEFT, - DEC_TAG_CURLY_RIGHT, - /// ANSI C1 char [ = CSI = Control Sequence Introducer - RESERVED_ANSI_CSI, - UNDEFINED__TAG_SQUARE_RIGHT, - UNDEFINED__TAG_ROUND_LEFT, - UNDEFINED__TAG_ROUND_RIGHT, - UNDEFINED__TAG_COMPARE_LEFT, - UNDEFINED__TAG_COMPARE_RIGHT, - UNDEFINED___TILDE, - UNDEFINED___PLUS, - UNDEFINED___MINUS, - UNDEFINED___ASTERISK, - UNDEFINED___COMMA, - UNDEFINED___DOT, - UNDEFINED___COLON, - UNDEFINED___SEMICOLON, - UNDEFINED___APOSTROPHE, - UNDEFINED___QUOTATION, - UNDEFINED___BACKTICK, - UNDEFINED___CARET, - UNDEFINED___EQUALS, - UNDEFINED___HASH, - UNDEFINED___DOLLAR, - UNDEFINED___PERCENT, - UNDEFINED__BAR_VERTICAL, - UNDEFINED__BAR_UNDER, - UNDEFINED__BAR_V_LEFT, - UNDEFINED__BAR_V_RIGHT, - UNDEFINED__AT, + /// _ESC6_X3 _ESC6_X1 _ESC6_X1 + ESC6_APL0127_P7A, + /// _ESC6_X3 _ESC6_X1 _ESC6_X2 + ESC6_APL0127_P7B, + /// _ESC6_X3 _ESC6_X1 _ESC6_X3 + ESC6_APL0127_P7C, + /// _ESC6_X3 _ESC6_X2 _ESC6_X1 + ESC6_BYD0127_P7D, + /// _ESC6_X3 _ESC6_X2 _ESC6_X2 + ESC6_BYD0127_P7E, + /// _ESC6_X3 _ESC6_X2 _ESC6_X3 + ESC6_BYD0127_P7F, + /// _ESC6_X3 _ESC6_X3 _ESC6_X1 + /// 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 + ESC68_PIE, + /// _ESC6_X3 _ESC6_X3 _ESC6_X2 + /// Select packed pie terminator number for 6 and 8 bit systems. + /// First NXX P6 is terminator select, than next NXX P6 are values, until out of range. + ESC68_NCR, + /// _ESC6_X3 _ESC6_X3 _ESC6_X3 + /// An optional triple escape stops the open ended escape sequence. + /// VT-100 Manual: "ESC also cancels any escape sequence". + ESC_STOP, + +/* /// VT-NX01 = __ESC6 A + ?num + VT_NX01_EXECUTE = Cursor one or X up NX_CURSOR_UP, @@ -129,17 +158,6 @@ public enum FCDotDEC1604DashP7 implements FourCornerX06BaklavaPoints, FourCorner OLD_MSX_INSERT_LINE, /// VT-52 = ESC M = Delete line OLD_MSX_DELETE_LINE, - UNDEFINED__NX14_N, - UNDEFINED__NX15_O, - UNDEFINED__NX16_P, - UNDEFINED__NX17_Q, - UNDEFINED__NX18_R, - UNDEFINED__NX19_S, - UNDEFINED__NX20_T, - UNDEFINED__NX21_U, - UNDEFINED__NX22_V, - UNDEFINED__NX23_W, - UNDEFINED__NX24_X, /// VT-NX01 = __ESC6 Y + ?x + ?(VT_NX01_NEXT + y) + VT_NX01_EXECUTE = Set cursor to X and Y position or only X or home NX_CURSOR_GOTO, @@ -176,7 +194,7 @@ public enum FCDotDEC1604DashP7 implements FourCornerX06BaklavaPoints, FourCorner /// -9 = Pink alert; /// Security or intruder alert. NX_BELL, - +*/ // MSX is simple VT-52 for reference see https://www.msx.org/wiki/MSX_Characters_and_Control_Codes#Escape_codes // // ANSI CSI has dynamic termination; @@ -202,25 +220,82 @@ public enum FCDotDEC1604DashP7 implements FourCornerX06BaklavaPoints, FourCorner // C1 char X = SOS = Start Of String ; - static final private FCDotDEC1604DashP7[] VALUES = values(); // values() is slow method - - private FCDotDEC1604DashP7() { + private FCDotDEC0127DashPX0() { } - public boolean isAlias(FCDotCDC1604DashP6 cdc) { - if (cdc == null) { - return false; + public boolean isEmbeddable() { + if (ordinal() >= ESC6_APL0127_P7A.ordinal()) { + return true; } - return cdc.ordinal() == ordinal(); + return false; } - public FCDotCDC1604DashP6 toAlias() { - return FCDotCDC1604DashP6.indexOf(ordinal()); + public boolean isExternal() { + if (ordinal() <= __ESC_RESERVED_A9.ordinal()) { + return true; + } + return false; + } + + // ============ TODO: make api more nice + + public List toX08MuffinPoints(FCDotCDC1604DashP6... letters) { + List result = new ArrayList<>(); + result.add(this); + for (FCDotCDC1604DashP6 letter : letters) { + result.add(letter); + } + return result; + } + + public List toX06BaklavaPoints(FCDotCDC1604DashP6... letters) { + List result = new ArrayList<>(); + for (int baklave : baklavaPoints()) { + result.add(FCDotCDC1604DashP6.indexOf(baklave)); + } + for (FCDotCDC1604DashP6 letter : letters) { + result.add(letter); + } + return result; + } + + public List toInt18BaklavaPoints(int... letters) { + List result = new ArrayList<>(); + for (int baklave : baklavaPoints()) { + result.add(baklave); + } + for (int letter : letters) { + result.add(letter); + } + return result; + } + + public int[] baklavaPointsPIE9C(FCDotCDC1604DashP6 letter, int offset) { + return new int[] { + FCDotCDC1604DashP6._ESC6_X1.ordinal() + (ordinal() / 9), + FCDotCDC1604DashP6._ESC6_X1.ordinal() + ((ordinal() / 3) % 3), + FCDotCDC1604DashP6._ESC6_X1.ordinal() + (ordinal() % 3), + letter.ordinal(), + FCDotCDC1604DashP6.NX01_A.ordinal() + offset + }; + } + + public int[] baklavaPointsP7(int offset) { + return new int[] { + FCDotCDC1604DashP6._ESC6_X1.ordinal() + (ordinal() / 9), + FCDotCDC1604DashP6._ESC6_X1.ordinal() + ((ordinal() / 3) % 3), + FCDotCDC1604DashP6._ESC6_X1.ordinal() + (ordinal() % 3), + FCDotCDC1604DashP6.NX01_A.ordinal() + offset + }; } @Override public int[] baklavaPoints() { - return new int[] {FCDotCDC1604DashP6.__ESC6.ordinal(), ordinal()}; + return new int[] { + FCDotCDC1604DashP6._ESC6_X1.ordinal() + (ordinal() / 9), + FCDotCDC1604DashP6._ESC6_X1.ordinal() + ((ordinal() / 3) % 3), + FCDotCDC1604DashP6._ESC6_X1.ordinal() + (ordinal() % 3), + }; } @Override @@ -230,14 +305,13 @@ public enum FCDotDEC1604DashP7 implements FourCornerX06BaklavaPoints, FourCorner @Override public int[] cakePoints() { - return new int[] {FourCornerDotCake.FC_DEC1604_P7.getStart() + ordinal()}; + return new int[] {FourCornerDotCake.FC_DEC0127_PX0.getStart() + ordinal()}; } - static public int length() { - return VALUES.length; - } - - static public FCDotDEC1604DashP7 indexOf(int idx) { - return VALUES[idx]; + public static FCDotDEC0127DashPX0 valueOf(FCDotCDC1604DashP6 msb, FCDotCDC1604DashP6 csb, FCDotCDC1604DashP6 lsb) { + int idx = (msb.ordinal() - FCDotCDC1604DashP6._ESC6_X1.ordinal()) * 9; + idx += (csb.ordinal() - FCDotCDC1604DashP6._ESC6_X1.ordinal()) * 3; + idx += (lsb.ordinal() - FCDotCDC1604DashP6._ESC6_X1.ordinal()); + return FCDotDEC0127DashPX0.values()[idx]; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZion7SalahSequence.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZion7SalahSequence.java index 365f9b5..e63eb95 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZion7SalahSequence.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZion7SalahSequence.java @@ -24,13 +24,13 @@ package org.x4o.o2o.fc18.zion7; import java.util.List; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; + /// Handles the lexer salah sequence strobes. /// /// @author Willem Cazander /// @version 1.0 Jan 11, 2025 public interface FourCornerZion7SalahSequence extends FourCornerZion7Candlelier { - void strobeSalahRaka(Integer cakePoint); - - void strobeSalahRaketSequence(List> arguments); + void strobeSalahSequence(FCDotDEC0127DashPX0 type, List> arguments); } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexer.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexer.java index 4b71d3b..b06f097 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexer.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexer.java @@ -27,12 +27,11 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Objects; +import java.util.Optional; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.zero33.FCDotAPL1604DashP8L; -import org.x4o.o2o.fc18.zero33.FCDotBYD1604DashP8H; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; -import org.x4o.o2o.fc18.zero33.FCDotDEC1604DashP7; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /// Parsed FC text and calls the handler methods for the classified strobe lights. /// @@ -43,14 +42,15 @@ public class FourCornerZionStenoLexer { private final boolean handlerEscape; private final FourCornerZion7Candlelier handler; private final FourCornerZion7AlphaOmega handlerDocument; - private final FourCornerZion7SalahSequence handlerRocket; + private final FourCornerZion7SalahSequence handlerSalahSequence; private final FourCornerZion7TempleScrolls handlerTempleScrolls; private final List scanners = new ArrayList<>(); - private Iterator input = null; + private int readLevel = 0; private Integer cakePoint = null; private int currLine = 0; private int currCol = 0; private FourCornerZionStenoLexerSmoke smokeSignals; + private FourCornerZionStenoLexerFire fireSignals; public FourCornerZionStenoLexer(FourCornerZion7Candlelier handler) { this(handler, true); @@ -65,9 +65,9 @@ public class FourCornerZionStenoLexer { this.handlerDocument = null; } if (handler instanceof FourCornerZion7SalahSequence) { - this.handlerRocket = FourCornerZion7SalahSequence.class.cast(handler); + this.handlerSalahSequence = FourCornerZion7SalahSequence.class.cast(handler); } else { - this.handlerRocket = null; + this.handlerSalahSequence = null; } if (handler instanceof FourCornerZion7TempleScrolls) { this.handlerTempleScrolls = FourCornerZion7TempleScrolls.class.cast(handler); @@ -78,25 +78,27 @@ public class FourCornerZionStenoLexer { if (cakeSlice.name().startsWith("__")) { continue; // can't handle reserved, we be reported as } - if (FourCornerDotCake.FC_CDC1604_P6.equals(cakeSlice)) { - continue; // handle esc's manual + if (cakeSlice.getStop() <= 0xFF) { + continue; // handle CDC and DEC and muffins manual } - if (FourCornerDotCake.FC_DEC1604_P7.equals(cakeSlice)) { - continue; // handle esc's manual - } - if (cakeSlice.name().startsWith("FC_NCR")) { + if (FourCornerDotCake.FC_UNI2K_11.equals(cakeSlice)) { continue; // parse blocks manual } - if (cakeSlice.name().startsWith("FC_UNI")) { + if (FourCornerDotCake.FC_UNI2K_22.equals(cakeSlice)) { continue; // parse blocks manual } if (FourCornerDotCake.FC_NETHER.equals(cakeSlice)) { continue; // merge the nether data to octals manual } + if (FourCornerDotCake.FC_NCR1632_XD.equals(cakeSlice)) { + continue; // merge the nether data to octals manual + } + if (FourCornerDotCake.FC_NCR1632_XN.equals(cakeSlice)) { + continue; // merge the nether data to octals manual + } this.scanners.add(new StenoScannerWordCakeSlice(cakeSlice)); } - this.scanners.add(new StenoScannerCDC()); - this.scanners.add(new StenoScannerDEC()); + this.scanners.add(new StenoScannerCDCDECMuffin()); this.scanners.add(new StenoScannerNCR18()); this.scanners.add(new StenoScannerUNI21()); this.scanners.add(new StenoScannerNether()); @@ -107,6 +109,11 @@ public class FourCornerZionStenoLexer { return this; } + public FourCornerZionStenoLexer withFireSignals(FourCornerZionStenoLexerFire fireSignals) { + this.fireSignals = fireSignals; + return this; + } + private enum ScanResult { EOF, NEXT, @@ -121,7 +128,7 @@ public class FourCornerZionStenoLexer { } private interface StenoScanner { - ScanResult scan(); + ScanResult scan(Iterator input); } public void read(List points) { @@ -129,20 +136,29 @@ public class FourCornerZionStenoLexer { } public void read(Iterator points) { - this.input = Objects.requireNonNull(points); - this.cakePoint = null; - this.currLine = 0; - this.currCol = 0; - if (handlerDocument != null) { - handlerDocument.strobeDocumentAlpha(); + Iterator input = Objects.requireNonNull(points); + readLevel++; // first puts on one, we allow level deep + if (readLevel > 2) { + if (smokeSignals != null) { + smokeSignals.burnRecursive(currLine, currCol); + } + return; + } + if (readLevel == 1) { + this.cakePoint = null; // allow reuse of lexer + this.currLine = 0; + this.currCol = 0; + if (handlerDocument != null) { + handlerDocument.strobeDocumentAlpha(); + } } while (input.hasNext()) { - if (safeNext().isEOF()) { + if (safeNext(input).isEOF()) { break; } ScanResult run = ScanResult.DONE; while (run.isDone()) { - run = parseSections(); + run = readTokens(input); } if (run.isEOF()) { break; @@ -151,15 +167,16 @@ public class FourCornerZionStenoLexer { smokeSignals.burnUnsupported(currLine, currCol, cakePoint); } } - if (handlerDocument != null) { + if (handlerDocument != null && readLevel == 1) { handlerDocument.strobeDocumentOmega(); } + readLevel--; } - private ScanResult parseSections() { + private ScanResult readTokens(Iterator input) { ScanResult result = ScanResult.NEXT; for (StenoScanner scanner : scanners) { - result = scanner.scan(); + result = scanner.scan(input); if (result.isEOF()) { return result; } @@ -170,31 +187,34 @@ public class FourCornerZionStenoLexer { return result; } - private ScanResult safeNext() { + private ScanResult safeNext(Iterator input) { if (!input.hasNext()) { return ScanResult.EOF; } cakePoint = input.next(); currCol++; + if (fireSignals != null) { + fireSignals.fireStateColumn(currCol); + } return ScanResult.DONE; } - private ScanResult safeReadCakePoints(int start, int stop, List result) { - return safeReadRange(start, stop, result, false); + private ScanResult safeReadCakePoints(Iterator input, int start, int stop, List result) { + return safeReadRange(input, start, stop, result, false); } - private ScanResult safeReadSliceOffsets(int start, int stop, List result) { - return safeReadRange(start, stop, result, true); + private ScanResult safeReadSliceOffsets(Iterator input, int start, int stop, List result) { + return safeReadRange(input, start, stop, result, true); } - private ScanResult safeReadRange(int start, int stop, List result, boolean offset) { + private ScanResult safeReadRange(Iterator input, int start, int stop, List result, boolean offset) { while (cakePoint >= start && cakePoint <= stop) { if (offset) { result.add(cakePoint - start); } else { result.add(cakePoint); } - if (safeNext().isEOF()) { + if (safeNext(input).isEOF()) { return ScanResult.EOF; } } @@ -210,12 +230,12 @@ public class FourCornerZionStenoLexer { } @Override - public ScanResult scan() { + public ScanResult scan(Iterator input) { if (cakeSlice.containsNot(cakePoint)) { return ScanResult.NEXT; } List result = new ArrayList<>(); - ScanResult status = safeReadSliceOffsets(cakeSlice.getStart(), cakeSlice.getStop(), result); + ScanResult status = safeReadSliceOffsets(input, cakeSlice.getStart(), cakeSlice.getStop(), result); if (!result.isEmpty()) { handler.strobeWords(cakeSlice, result); } @@ -226,12 +246,12 @@ public class FourCornerZionStenoLexer { class StenoScannerNether implements StenoScanner { @Override - public ScanResult scan() { + public ScanResult scan(Iterator input) { if (FourCornerDotCake.FC_NETHER.containsNot(cakePoint)) { return ScanResult.NEXT; } List result = new ArrayList<>(); - ScanResult status = safeReadCakePoints(FourCornerDotCake.FC_NETHER.getStart(), FourCornerDotCake.FC_NETHER.getStop(), result); + ScanResult status = safeReadCakePoints(input, FourCornerDotCake.FC_NETHER.getStart(), FourCornerDotCake.FC_NETHER.getStop(), result); if (!result.isEmpty()) { handlePoints(result); } @@ -247,12 +267,12 @@ public class FourCornerZionStenoLexer { class StenoScannerNCR18 implements StenoScanner { @Override - public ScanResult scan() { + public ScanResult scan(Iterator input) { if (cakePoint < FourCornerDotCake.FC_NCR1632_XD.getStart() || cakePoint > FourCornerDotCake.FC_NCR1632_XN.getStop()) { return ScanResult.NEXT; } List result = new ArrayList<>(); - ScanResult status = safeReadCakePoints(FourCornerDotCake.FC_NCR1632_XD.getStart(), FourCornerDotCake.FC_NCR1632_XN.getStop(), result); + ScanResult status = safeReadCakePoints(input, FourCornerDotCake.FC_NCR1632_XD.getStart(), FourCornerDotCake.FC_NCR1632_XN.getStop(), result); if (!result.isEmpty()) { handlePoints(result); // mix of four blocks } @@ -290,12 +310,12 @@ public class FourCornerZionStenoLexer { class StenoScannerUNI21 implements StenoScanner { @Override - public ScanResult scan() { + public ScanResult scan(Iterator input) { if (cakePoint < FourCornerDotCake.FC_UNI2K_11.getStart() || cakePoint > FourCornerDotCake.FC_UNI2K_22.getStop()) { return ScanResult.NEXT; } List result = new ArrayList<>(); - ScanResult status = safeReadCakePoints(FourCornerDotCake.FC_UNI2K_11.getStart(), FourCornerDotCake.FC_UNI2K_22.getStop(), result); + ScanResult status = safeReadCakePoints(input, FourCornerDotCake.FC_UNI2K_11.getStart(), FourCornerDotCake.FC_UNI2K_22.getStop(), result); if (!result.isEmpty()) { handlePoints(result); // mix of the two unicode blocks pages } @@ -318,18 +338,19 @@ public class FourCornerZionStenoLexer { } } - class StenoScannerCDC implements StenoScanner { + class StenoScannerCDCDECMuffin implements StenoScanner { - Integer numberMode = null; - boolean numberPIE = true; + private Integer numberMode = null; + private boolean numberPIE = true; + private FCDotDEC0127DashPX0 decMode = null; @Override - public ScanResult scan() { - if (FourCornerDotCake.FC_CDC1604_P6.containsNot(cakePoint)) { + public ScanResult scan(Iterator input) { + if (cakePoint < FourCornerDotCake.FC_CDC1604_P6.getStart() || cakePoint > FourCornerDotCake.__MIND_THE_GAP.getStop()) { return ScanResult.NEXT; } List result = new ArrayList<>(); - ScanResult status = safeReadCakePoints(FourCornerDotCake.FC_CDC1604_P6.getStart(), FourCornerDotCake.FC_CDC1604_P6.getStop(), result); + ScanResult status = safeReadCakePoints(input, FourCornerDotCake.FC_CDC1604_P6.getStart(), FourCornerDotCake.__MIND_THE_GAP.getStop(), result); if (!result.isEmpty()) { handlePoints(result); } @@ -341,33 +362,169 @@ public class FourCornerZionStenoLexer { numberMode = null; numberPIE = true; while (cdc.hasNext()) { - Integer cdcPoint = cdc.next(); - if (FCDotCDC1604DashP6._NEWLINE.ordinal() == cdcPoint) { + Integer muffinPoint = cdc.next(); + // Log state changes + if (FCDotCDC1604DashP6._NEWLINE.ordinal() == muffinPoint) { currLine++; - if (smokeSignals != null) { - smokeSignals.burnNewLine(); + currCol = 0; + if (fireSignals != null) { + fireSignals.fireStateLine(currLine); + fireSignals.fireStateColumn(currCol); } } + // Handle 8 and 18 bit direct cake points + if (FourCornerDotCake.FC_APL0127_P7A.contains(muffinPoint)) { + handler.strobeWords(FourCornerDotCake.FC_APL0127_P7A, List.of(muffinPoint)); + continue; + } + if (FourCornerDotCake.FC_APL0127_P7B.contains(muffinPoint)) { + handler.strobeWords(FourCornerDotCake.FC_APL0127_P7B, List.of(muffinPoint)); + continue; + } + if (FourCornerDotCake.FC_APL0127_P7C.contains(muffinPoint)) { + handler.strobeWords(FourCornerDotCake.FC_APL0127_P7C, List.of(muffinPoint)); + continue; + } + if (FourCornerDotCake.FC_BYD0127_P7D.contains(muffinPoint)) { + handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7D, List.of(muffinPoint)); + continue; + } + if (FourCornerDotCake.FC_BYD0127_P7E.contains(muffinPoint)) { + handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7E, List.of(muffinPoint)); + continue; + } + if (FourCornerDotCake.FC_BYD0127_P7F.contains(muffinPoint)) { + handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7F, List.of(muffinPoint)); + continue; + } + if (FourCornerDotCake.__MIND_THE_GAP.contains(muffinPoint)) { + if (smokeSignals != null) { + smokeSignals.burnUnsupported(currLine, currCol, cakePoint); + } + continue; + } + if (handlerEscape) { - handleCDC(cdc, cdcPoint); + // Handle 6 bit CDC and DEC 6/8/18 codes + handleCDCDEC(cdc, muffinPoint, null); + } else if (FourCornerDotCake.FC_DEC0127_PX0.contains(muffinPoint)) { + // No escaping, print DEC code for 8 and 18 bit + handler.strobeWords(FourCornerDotCake.FC_DEC0127_PX0, List.of(muffinPoint - FourCornerDotCake.FC_DEC0127_PX0.getStart())); } else { - handler.strobeWords(FourCornerDotCake.FC_CDC1604_P6, List.of(cdcPoint)); + // No escaping, print CDC code + handler.strobeWords(FourCornerDotCake.FC_CDC1604_P6, List.of(muffinPoint)); } } } - private void handleCDC(Iterator cdc, Integer cdcPoint) { - if (FCDotCDC1604DashP6.__ESC6.ordinal() == cdcPoint) { - if (!cdc.hasNext()) { - return; - } - FCDotDEC1604DashP7 decCode = FCDotDEC1604DashP7.indexOf(cdc.next()); + private FCDotDEC0127DashPX0 readEscape6(Iterator cdc, Integer cdcPoint) { + // Read 8 or 18 bit Direct Escape Code + if (FourCornerDotCake.FC_DEC0127_PX0.contains(cdcPoint)) { + return FCDotDEC0127DashPX0.values()[cdcPoint - FourCornerDotCake.FC_DEC0127_PX0.getStart()]; + } + // Read 6 bit escape code + FCDotCDC1604DashP6 x1 = FCDotCDC1604DashP6.indexOf(cdcPoint); + FCDotCDC1604DashP6 x2 = null; + FCDotCDC1604DashP6 x3 = null; + if (!cdc.hasNext()) { + return null; + } + cdcPoint = cdc.next(); + if (FCDotCDC1604DashP6.isEscape6(cdcPoint)) { + x2 = FCDotCDC1604DashP6.indexOf(cdcPoint); + } else { + return null; + } + if (!cdc.hasNext()) { + return null; + } + cdcPoint = cdc.next(); + if (FCDotCDC1604DashP6.isEscape6(cdcPoint)) { + x3 = FCDotCDC1604DashP6.indexOf(cdcPoint); + } else { + return null; + } + return FCDotDEC0127DashPX0.valueOf(x1, x2, x3); + } + + /// note; cdcPoint is always CDC or direct DEC escape code + private void handleCDCDEC(Iterator cdc, Integer cdcPoint, FCDotDEC0127DashPX0 startMode) { + + if (startMode != null) { + numberMode = null; + decMode = startMode; + } + // Start of escape + if (FCDotCDC1604DashP6.isEscape6(cdcPoint) || FourCornerDotCake.FC_DEC0127_PX0.contains(cdcPoint)) { numberMode = null; // out of range, thus stop - Integer handled = handleEscape6(decCode, cdc); - if (handled == null) { + decMode = readEscape6(cdc, cdcPoint); + if (decMode == null) { + if (smokeSignals != null) { + smokeSignals.burnInvalidEscape(currLine, currCol, cdcPoint); + } return; } - cdcPoint = handled; // out of range, is back to normal + if (decMode == FCDotDEC0127DashPX0.ESC68_PIE || decMode == FCDotDEC0127DashPX0.ESC68_NCR) { + if (!cdc.hasNext()) { + return; + } + numberMode = cdc.next(); + numberPIE = decMode == FCDotDEC0127DashPX0.ESC68_PIE; // is false for NCR + if (numberMode < FCDotCDC1604DashP6.NX01_A.ordinal()) { + cdcPoint = numberMode; // print char + numberMode = null; // invalid selector, thus stop + } else { + if (!cdc.hasNext()) { + return; + } + cdcPoint = cdc.next(); // fetch next letter, for number mode + } + } else { + boolean modeDone = readDECMode(cdc); + if (modeDone) { + return; // fetch next + } + if (!cdc.hasNext()) { + return; + } + cdcPoint = cdc.next(); // is used by readEscape6, thus read again + } + } + + // Escape without body and new escape ... + if (FCDotCDC1604DashP6.isEscape6(cdcPoint) || FourCornerDotCake.FC_DEC0127_PX0.contains(cdcPoint)) { + //goto next_escape; TODO: add extra loop to remove stack here... + handleCDCDEC(cdc, cdcPoint, startMode); + return; + } + + if (decMode == FCDotDEC0127DashPX0.ESC6_APL0127_P7A) { + handler.strobeWords(FourCornerDotCake.FC_APL0127_P7A, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal())); + return; + } + if (decMode == FCDotDEC0127DashPX0.ESC6_APL0127_P7B) { + handler.strobeWords(FourCornerDotCake.FC_APL0127_P7B, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal())); + return; + } + if (decMode == FCDotDEC0127DashPX0.ESC6_APL0127_P7C) { + handler.strobeWords(FourCornerDotCake.FC_APL0127_P7C, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal())); + return; + } + if (decMode == FCDotDEC0127DashPX0.ESC6_BYD0127_P7D) { + handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7D, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal())); + return; + } + if (decMode == FCDotDEC0127DashPX0.ESC6_BYD0127_P7E) { + handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7E, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal())); + return; + } + if (decMode == FCDotDEC0127DashPX0.ESC6_BYD0127_P7F) { + handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7F, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal())); + return; + } + if (decMode == FCDotDEC0127DashPX0.ESC_STOP) { + decMode = null; + numberMode = null; // stop requested, print normal } if (numberMode != null && (cdcPoint > numberMode)) { numberMode = null; // out of range @@ -375,21 +532,15 @@ public class FourCornerZionStenoLexer { if (numberMode != null && (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal())) { numberMode = null; // below index 1 is end number mode } - if (FCDotCDC1604DashP6.__PIE68.ordinal() == cdcPoint || FCDotCDC1604DashP6.__NCR68.ordinal() == cdcPoint) { - if (!cdc.hasNext()) { - return; - } - numberMode = cdc.next(); - numberPIE = FCDotCDC1604DashP6.__PIE68.ordinal() == cdcPoint; // is false for PIN - if (numberMode != null && numberMode < FCDotCDC1604DashP6.NX01_A.ordinal()) { - cdcPoint = numberMode; // print char - numberMode = null; // illegal number mode - } else { - return; - } - } if (numberMode == null) { - handler.strobeWords(FourCornerDotCake.FC_CDC1604_P6, List.of(cdcPoint)); + Optional slice = FourCornerDotCake.valueFromCakePoint(cdcPoint); + if (slice.isEmpty()) { + if (smokeSignals != null) { + smokeSignals.burnUnsupported(currLine, currCol, cdcPoint); + } + return; + } + handler.strobeWords(slice.get(), List.of(cdcPoint)); return; } if (numberPIE) { @@ -405,75 +556,108 @@ public class FourCornerZionStenoLexer { handler.strobeNCR1632(denominator, numerator); } } - } - - class StenoScannerDEC implements StenoScanner { - - @Override - public ScanResult scan() { - if (FourCornerDotCake.FC_DEC1604_P7.containsNot(cakePoint)) { - return ScanResult.NEXT; - } - Integer decPoint = cakePoint - FourCornerDotCake.FC_DEC1604_P7.getLength(); - FCDotDEC1604DashP7 decCode = FCDotDEC1604DashP7.indexOf(decPoint); - if (handlerEscape) { - //numberMode = null; // out of range, thus stop - Integer handled = handleEscape6(decCode, input); - if (handled == null) { - return safeNext(); + + private boolean readDECMode(Iterator cdc) { + for (FCDotDEC0127DashPX0 salahMode : FCDotDEC0127DashPX0.values()) { + if (!salahMode.isExternal()) { + continue; + } + if (salahMode.equals(decMode)) { + if (salahMode.name().startsWith("__")) { + if (smokeSignals != null) { + smokeSignals.burnInvalidSalah(currLine, currCol); + } + return false; + } + List> args = new ArrayList<>(); + scanSalahRakaAt(cdc, args); + if (!args.isEmpty() && handlerSalahSequence != null) { + handlerSalahSequence.strobeSalahSequence(salahMode, args); + } + return true; } - //cakePoint = handled; // out of range, is back to normal } - handler.strobeWords(FourCornerDotCake.FC_DEC1604_P7, List.of(decPoint)); - return safeNext(); - } - } - - private Integer handleEscape6(FCDotDEC1604DashP7 decCode, Iterator cdc) { - if (FCDotDEC1604DashP7.__NUL_DEC.equals(decCode)) { - return null; - } - if (FCDotDEC1604DashP7.__ESC6_APL.equals(decCode)) { - if (!cdc.hasNext()) { - return null; + if (FCDotDEC0127DashPX0.ESC68_FC18.equals(decMode)) { + List> result = new ArrayList<>(); + scanSalahRakaAt(cdc, result); + if (!result.isEmpty()) { + List renderCakePoints = new ArrayList<>(); + for (List argu : result) { + int cakePointArgu = 0; + int cakePointIdx = 6; + for (Integer octal : argu) { + if (octal < FCDotCDC1604DashP6.NX01_A.ordinal()) { + continue; + } + if (octal > FCDotCDC1604DashP6.NX08_H.ordinal()) { + continue; + } + int offset = octal - FCDotCDC1604DashP6.NX01_A.ordinal(); + cakePointArgu = cakePointArgu + (offset << (cakePointIdx*3)); + cakePointIdx--; + if (cakePointIdx < 0) { + renderCakePoints.add(cakePointArgu); + cakePointIdx = 6; + cakePointArgu = 0; + } + } + } + read(renderCakePoints); + return true; + } } - FCDotAPL1604DashP8L aplCode = FCDotAPL1604DashP8L.indexOf(cdc.next()); - handler.strobeWords(FourCornerDotCake.FC_APL1604_P8L, List.of(aplCode.ordinal())); - return null; + return false; } - if (FCDotDEC1604DashP7.__ESC6_BYD.equals(decCode)) { - if (!cdc.hasNext()) { - return null; + + private ScanResult scanSalahRakaAt(Iterator input, List> result) { + List argu = new ArrayList<>(); + while (input.hasNext()) { + int cdcPoint = input.next(); + if (cdcPoint == FCDotCDC1604DashP6._NUL.ordinal()) { + if (smokeSignals != null) { + smokeSignals.burnInvalidSalah(currLine, currCol); + } + result.clear(); + return ScanResult.NEXT; // _NUL not allowed salah + } + if (FCDotCDC1604DashP6.isEscape6(cdcPoint) || FourCornerDotCake.FC_DEC0127_PX0.contains(cdcPoint)) { + FCDotDEC0127DashPX0 embedESC = readEscape6(input, cdcPoint); + if (embedESC == null) { + if (smokeSignals != null) { + smokeSignals.burnInvalidEscape(currLine, currCol, cdcPoint); + } + result.clear(); + return ScanResult.NEXT; + } + if (FCDotDEC0127DashPX0.ESC_SEQ_SALAH.equals(embedESC)) { + result.add(argu); + return ScanResult.DONE; // 6/8/18 bits are DONE + } + if (FCDotDEC0127DashPX0.ESC_SEQ_RAKA_AT.equals(embedESC)) { + result.add(argu); + argu = new ArrayList<>(); + if (safeNext(input).isEOF()) { + return ScanResult.EOF; + } + continue; // Next argument + } + if (!embedESC.isEmbeddable()) { + if (smokeSignals != null) { + smokeSignals.burnInvalidEscape(currLine, currCol, cdcPoint); + } + result.clear(); + return ScanResult.NEXT; + } + handleCDCDEC(input, cdcPoint, embedESC); + continue; + } + argu.add(cdcPoint); } - FCDotBYD1604DashP8H bydCode = FCDotBYD1604DashP8H.indexOf(cdc.next()); - handler.strobeWords(FourCornerDotCake.FC_BYD1604_P8H, List.of(bydCode.ordinal())); - return null; - } - if (FCDotDEC1604DashP7.__ESC_STOP.equals(decCode)) { - return null; - } - if (FCDotDEC1604DashP7.__ESC68_FC18.equals(decCode)) { - return decCode.ordinal(); // todo handle - } - if (FCDotDEC1604DashP7.__ESC18_NETHER.equals(decCode)) { - if (!cdc.hasNext()) { - return null; + if (smokeSignals != null) { + smokeSignals.burnInvalidSalah(currLine, currCol); } -// buf.append(FCDotCDC1604DashP6.escapeSignUnicode(FCDotCDC1604DashP6.__ESC6.ordinal()));// TODO: add new symbol - // TODO: eat header and eat data, as we can't display it - return null; + result.clear(); + return ScanResult.NEXT; } - if (FCDotDEC1604DashP7.VT_RAKA_AT.equals(decCode)) { - return decCode.ordinal(); // todo handle - } - if (FCDotDEC1604DashP7.VT_SALAH.equals(decCode)) { - return decCode.ordinal(); // todo handle - } - if (handlerRocket == null) { - handler.strobeWords(FourCornerDotCake.FC_DEC1604_P7, List.of(decCode.ordinal())); - } else { - handlerRocket.strobeSalahRaka(decCode.cakePoints()[0]); - } - return null; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexerFire.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexerFire.java new file mode 100644 index 0000000..64555cb --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexerFire.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2004-2014, Willem Cazander + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * 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.o2o.fc18.zion7; + +/// Provides lexer fire state signals. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 13, 2025 +public interface FourCornerZionStenoLexerFire { + + default void fireStateLine(int line) { + } + + default void fireStateColumn(int column) { + } +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexerSmoke.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexerSmoke.java index 931af13..a056d6c 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexerSmoke.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zion7/FourCornerZionStenoLexerSmoke.java @@ -28,8 +28,15 @@ package org.x4o.o2o.fc18.zion7; /// @version 1.0 Jan 12, 2025 public interface FourCornerZionStenoLexerSmoke { - default void burnNewLine() { + default void burnUnsupported(int line, int col, int cakePoint) { } - void burnUnsupported(int line, int col, int cakePoint); + default void burnRecursive(int line, int col) { + } + + default void burnInvalidSalah(int line, int col) { + } + + default void burnInvalidEscape(int line, int col, int cakePoint) { + } } diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerDotCakeTest.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerDotCakeTest.java index 19b07ca..2925dbb 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerDotCakeTest.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerDotCakeTest.java @@ -40,7 +40,7 @@ public class FourCornerDotCakeTest { Assertions.assertNotNull(v); Assertions.assertTrue(v.getStart() <= v.getStop(), "Start is larger than stop in: " + v.name()); sizeTotal += v.getLength(); - System.out.println("Cake start: 0x" + Integer.toHexString(v.getStart()) + " end: 0" + Integer.toHexString(v.getStop()) + " of " + v.name() + " size: " + v.getLength()); + //System.out.println("Cake start: 0x" + Integer.toHexString(v.getStart()) + " end: 0" + Integer.toHexString(v.getStop()) + " of " + v.name() + " size: " + v.getLength()); } Assertions.assertEquals(262144, sizeTotal); } diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplayTest.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplayTest.java index ef07724..d65a7e8 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplayTest.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplayTest.java @@ -30,7 +30,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash26; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; -import org.x4o.o2o.fc18.zero33.FCDotDEC1604DashP7; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Tests four corner displayed as unicode. @@ -45,7 +45,7 @@ public class FourCornerUnicodeDisplayTest { List cdc = new ArrayList<>(); cdc.add(FCDotCDC1604DashP6.NX24_X); // = X cdc.add(FCDotCDC1604DashP6.EQUALS); - cdc.add(FCDotCDC1604DashP6.__NCR68); + cdc.addAll(FCDotDEC0127DashPX0.ESC68_NCR.toX06BaklavaPoints()); cdc.add(FCDotCDC1604DashP6.NX15_O); // T015 cdc.add(FCDotCDC1604DashP6.NX14_N); // NXX_014 cdc.add(FCDotCDC1604DashP6.NX05_E); // NXX_005 @@ -56,7 +56,7 @@ public class FourCornerUnicodeDisplayTest { cdc.add(FCDotCDC1604DashP6._NEWLINE); Assertions.assertEquals("X=¹⁴/₁₅⁵/₁₅⁷/₁₅¹⁵/₁₅⁴/₁₅;\n", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); - Assertions.assertEquals("X=␂ONEGOD;\n", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); + Assertions.assertEquals("X=␃␃␂ONEGOD;\n", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); } @Test @@ -99,27 +99,27 @@ public class FourCornerUnicodeDisplayTest { cdc.add(FCDotCDC1604DashP6.NX03_C); cdc.add(FCDotCDC1604DashP6.NX04_D); cdc.add(FCDotCDC1604DashP6.DOT); - cdc.add(FCDotCDC1604DashP6.__PIE68); + cdc.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints()); cdc.add(FCDotCDC1604DashP6.NX26_Z); // select lower case cdc.add(FCDotCDC1604DashP6.NX10_J); cdc.add(FCDotCDC1604DashP6.NX11_K); cdc.add(FCDotCDC1604DashP6.NX12_L); cdc.add(FCDotCDC1604DashP6.NX13_M); - cdc.add(FCDotDEC1604DashP7.__ESC_STOP); + cdc.addAll(FCDotDEC0127DashPX0.ESC_STOP.toX06BaklavaPoints()); 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)); } @Test public void testNumberTerminatorOutOfRange() throws Exception { List cdc = new ArrayList<>(); cdc.add(FCDotCDC1604DashP6.NX24_X); // = X - cdc.add(FCDotCDC1604DashP6.__PIE68); + cdc.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints()); cdc.add(FCDotCDC1604DashP6.CARET); // ^ cdc.add(FCDotCDC1604DashP6.PERCENT); // = % - cdc.add(FCDotCDC1604DashP6.__PIE68); + cdc.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints()); cdc.add(FCDotCDC1604DashP6.AT); cdc.add(FCDotCDC1604DashP6.NX11_K); // = K @@ -129,10 +129,10 @@ public class FourCornerUnicodeDisplayTest { @Test public void testNumberPieOutOfRange() throws Exception { List cdc = new ArrayList<>(); - cdc.add(FCDotCDC1604DashP6.__PIE68); + cdc.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints()); cdc.add(FCDotCDC1604DashP6.NX01_A); cdc.add(FCDotCDC1604DashP6.NX02_B); // B - cdc.add(FCDotCDC1604DashP6.__PIE68); + cdc.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints()); cdc.add(FCDotCDC1604DashP6.NX10_J); cdc.add(FCDotCDC1604DashP6.NX04_D); // 3 cdc.add(FCDotCDC1604DashP6.NX11_K); // K @@ -157,5 +157,15 @@ public class FourCornerUnicodeDisplayTest { int bitsUTF8 = outputExpected.getBytes(StandardCharsets.UTF_8).length*8; int bitsFC18 = cdc.size()*18; Assertions.assertTrue(bitsFC18 < bitsUTF8, "FC18 is not smaller"); + + List cdc6 = FourCornerUnicodeMapper.DICTIONARY.embedFC18(cdc); + Assertions.assertEquals(outputExpected, FourCornerUnicodeDisplay.text().renderFromInt18(cdc6)); + Assertions.assertTrue(cdc6.size() > cdc.size(), "FCx6 is not bigger"); + + System.out.println("size FC18="+cdc.size()); + System.out.println("size 0x21="+outputExpected.length()); + System.out.println("size UTF8="+outputExpected.getBytes(StandardCharsets.UTF_8).length); + System.out.println("size FCx6="+cdc6.size()); + System.out.println("raw FCx6="+FourCornerUnicodeDisplay.raw().renderFromInt18(cdc6)); } } diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerUnicodeImportTest.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerUnicodeImportTest.java index c754942..0ef59b9 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerUnicodeImportTest.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerUnicodeImportTest.java @@ -29,7 +29,7 @@ import org.junit.jupiter.api.Test; import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash10; import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash26; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; -import org.x4o.o2o.fc18.zero33.FCDotDEC1604DashP7; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Tests four corner unicode import. @@ -61,15 +61,17 @@ public class FourCornerUnicodeImportTest { List cdc = FourCornerUnicodeImport.strict().convertToX06("foobar"); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(8, cdc.size()); - Assertions.assertEquals(FCDotCDC1604DashP6.__PIE68, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(1)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(2)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(3)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(4)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(5)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(6)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(7)); + Assertions.assertEquals(10, cdc.size()); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(0)); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(1)); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1, cdc.get(2)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(3)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(4)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(5)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(6)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(7)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(8)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(9)); String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc); Assertions.assertEquals("foobar", out); @@ -80,17 +82,20 @@ public class FourCornerUnicodeImportTest { List cdc = FourCornerUnicodeImport.strict().convertToX06("fooBAR"); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(10, cdc.size()); // = 60 bit - Assertions.assertEquals(FCDotCDC1604DashP6.__PIE68, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(1)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(2)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(3)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(4)); - Assertions.assertEquals(FCDotCDC1604DashP6.__ESC6, cdc.get(5)); - Assertions.assertEquals(FCDotCDC1604DashP6.__ESC6, cdc.get(6)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(7)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(8)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(9)); + Assertions.assertEquals(13, cdc.size()); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(0)); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(1)); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1, cdc.get(2)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(3)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(4)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(5)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(6)); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(7)); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(8)); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, 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)); String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc); Assertions.assertEquals("fooBAR", out); @@ -101,13 +106,13 @@ public class FourCornerUnicodeImportTest { List cdc = FourCornerUnicodeImport.strict().convertToX08("fooBAR"); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(9, cdc.size()); // = 72 bit - Assertions.assertEquals(FCDotCDC1604DashP6.__PIE68, cdc.get(0)); + Assertions.assertEquals(9, cdc.size()); + Assertions.assertEquals(FCDotDEC0127DashPX0.ESC68_PIE, cdc.get(0)); Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(1)); Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(2)); Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(3)); Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(4)); - Assertions.assertEquals(FCDotDEC1604DashP7.__ESC_STOP, cdc.get(5)); + Assertions.assertEquals(FCDotDEC0127DashPX0.ESC_STOP, cdc.get(5)); Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(6)); Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(7)); Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(8)); @@ -163,17 +168,19 @@ public class FourCornerUnicodeImportTest { List cdc = FourCornerUnicodeImport.strict().convertToX06("01201337"); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(10, cdc.size()); - Assertions.assertEquals(FCDotCDC1604DashP6.__PIE68, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdc.get(1)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(2)); // 0 - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(3)); // 1 - Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdc.get(4)); // 2 - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(5)); // 0 - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(6)); // 1 - Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(7)); // 3 - Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(8)); // 3 - Assertions.assertEquals(FCDotCDC1604DashP6.NX08_H, cdc.get(9)); // 7 + Assertions.assertEquals(12, cdc.size()); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(0)); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(1)); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1, cdc.get(2)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdc.get(3)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(4)); // 0 + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(5)); // 1 + Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdc.get(6)); // 2 + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(7)); // 0 + Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(8)); // 1 + Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(9)); // 3 + Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(10)); // 3 + Assertions.assertEquals(FCDotCDC1604DashP6.NX08_H, cdc.get(11)); // 7 String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc); Assertions.assertEquals("01201337", out); @@ -185,7 +192,7 @@ public class FourCornerUnicodeImportTest { Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); Assertions.assertEquals(10, cdc.size()); - Assertions.assertEquals(FCDotCDC1604DashP6.__PIE68, cdc.get(0)); + Assertions.assertEquals(FCDotDEC0127DashPX0.ESC68_PIE, cdc.get(0)); Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdc.get(1)); Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(2)); // 0 Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(3)); // 1 diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerWriteExampleMD.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerWriteExampleMD.java index 4452d6d..b1a9f12 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerWriteExampleMD.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerWriteExampleMD.java @@ -28,10 +28,16 @@ import java.nio.file.Files; import java.nio.file.StandardOpenOption; import java.util.ArrayList; import java.util.List; +import java.util.function.Function; -import org.x4o.o2o.fc18.zero33.FCDotAPL1604DashP8L; -import org.x4o.o2o.fc18.zero33.FCDotBYD1604DashP8H; +import org.x4o.o2o.fc18.zero33.FCDotAPL0127DashP7A; +import org.x4o.o2o.fc18.zero33.FCDotAPL0127DashP7B; +import org.x4o.o2o.fc18.zero33.FCDotAPL0127DashP7C; +import org.x4o.o2o.fc18.zero33.FCDotBYD0127DashP7D; +import org.x4o.o2o.fc18.zero33.FCDotBYD0127DashP7E; +import org.x4o.o2o.fc18.zero33.FCDotBYD0127DashP7F; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0; /** * Writes fc example markdown document. @@ -70,25 +76,25 @@ public class FourCornerWriteExampleMD { writeTableEnd(buf); buf.append("

\n"); - writeTitle3(buf, "FC.APL1604-S6"); - writeTableStart17(buf); - writeAPL(buf, 0x00); - writeAPL(buf, 0x10); - writeAPL(buf, 0x20); - writeAPL(buf, 0x30); + int startAPL = FourCornerDotCake.FC_APL0127_P7A.getStart(); + writeTitle3(buf, "FC.APL0127-P7(ABC)"); + writeTableStart28(buf); + writeAPL(buf, startAPL + 0, v -> FCDotAPL0127DashP7A.indexOf(v).codePoints()[0]); + writeAPL(buf, startAPL + 27, v -> FCDotAPL0127DashP7B.indexOf(v).codePoints()[0]); + writeAPL(buf, startAPL + 54, v -> FCDotAPL0127DashP7C.indexOf(v).codePoints()[0]); writeTableEnd(buf); buf.append("

\n"); - writeTitle3(buf, "FC.BYD1604-C6"); - writeTableStart17(buf); - writeBYD(buf, 0x00); - writeBYD(buf, 0x10); - writeBYD(buf, 0x20); - writeBYD(buf, 0x30); + int startBYD = FourCornerDotCake.FC_BYD0127_P7D.getStart(); + writeTitle3(buf, "FC.BYD0127-P7(DEF)"); + writeTableStart28(buf); + writeBYD(buf, startBYD + 0, v -> FCDotBYD0127DashP7D.indexOf(v).codePoints()[0]); + writeBYD(buf, startBYD + 27, v -> FCDotBYD0127DashP7E.indexOf(v).codePoints()[0]); + writeBYD(buf, startBYD + 54, v -> FCDotBYD0127DashP7F.indexOf(v).codePoints()[0]); writeTableEnd(buf); buf.append("

\n"); - writeTitle3(buf, "FC.PIE9C-XX"); + writeTitle3(buf, "FC.PIE9C-(01-27)"); writeTableStart28(buf); writePIE(buf, FourCornerDotCake.FC_PIE9C_01); writePIE(buf, FourCornerDotCake.FC_PIE9C_02); @@ -185,15 +191,16 @@ public class FourCornerWriteExampleMD { buf.append("\n"); } - private void writeAPL(StringBuilder buf, int off) { - String prefixHex = Integer.toHexString(0x80 + off).toUpperCase(); + private void writeAPL(StringBuilder buf, int off, Function conv) { + String prefixHex = Integer.toHexString(off).toUpperCase(); buf.append(""); buf.append("U+0000"); - buf.append(prefixHex.charAt(0)); + buf.append(prefixHex); buf.append("x"); - for (int i=off; i<16+off;i++) { - FCDotAPL1604DashP8L apl = FCDotAPL1604DashP8L.indexOf(i); - int codePoint = apl.codePoints()[0]; + for (int i=0; i<27;i++) { + //FCDotAPL0127DashP7A apl = c.indexOf(i); + //int codePoint = apl.codePoints()[0]; + int codePoint = conv.apply(i); buf.append(""); if (codePoint == '\u0000') { buf.append("␀"); @@ -205,15 +212,16 @@ public class FourCornerWriteExampleMD { buf.append("\n"); } - private void writeBYD(StringBuilder buf, int off) { - String prefixHex = Integer.toHexString(0xC0 + off).toUpperCase(); + private void writeBYD(StringBuilder buf, int off, Function conv) { + String prefixHex = Integer.toHexString(off).toUpperCase(); buf.append(""); buf.append("U+0000"); - buf.append(prefixHex.charAt(0)); + buf.append(prefixHex); buf.append("x"); - for (int i=off; i<16+off;i++) { - FCDotBYD1604DashP8H byd = FCDotBYD1604DashP8H.indexOf(i); - int codePoint = byd.codePoints()[0]; + for (int i=0; i<27;i++) { + //FCDotBYD0127DashP7D byd = FCDotBYD0127DashP7D.indexOf(i); + //int codePoint = byd.codePoints()[0]; + int codePoint = conv.apply(i); buf.append(""); if (codePoint == '\u0000') { buf.append("␀"); @@ -262,7 +270,10 @@ public class FourCornerWriteExampleMD { continue; } List piNum = new ArrayList<>(); - piNum.add(FCDotCDC1604DashP6.__NCR68.ordinal()); + //piNum.add(FCDotCDC1604DashP6.__NCR68.ordinal());\ + for (int letter : FCDotDEC0127DashPX0.ESC68_NCR.baklavaPoints()) { + piNum.add(letter); + } piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + t); piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + i); String char18Str = FourCornerUnicodeDisplay.text().renderFromInt18(piNum); diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashP8LTest.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashP8LTest.java index 110a008..ca6d3e6 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashP8LTest.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashP8LTest.java @@ -38,10 +38,12 @@ public class FCDotAPL1604DashP8LTest { @Test public void testValues() throws Exception { - Assertions.assertEquals(64, FCDotAPL1604DashP8L.length()); + Assertions.assertEquals(27, FCDotAPL0127DashP7A.length()); + Assertions.assertEquals(27, FCDotAPL0127DashP7B.length()); + Assertions.assertEquals(27, FCDotAPL0127DashP7C.length()); boolean duplicate = false; - Map global = new HashMap<>(); - for (FCDotAPL1604DashP8L v : FCDotAPL1604DashP8L.values()) { + Map global = new HashMap<>(); + for (FCDotAPL0127DashP7A v : FCDotAPL0127DashP7A.values()) { Assertions.assertNotNull(v); if (global.containsKey(v.codePoints()[0])) { duplicate = true; diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashP8HTest.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashP8HTest.java index 8360707..d6e2848 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashP8HTest.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashP8HTest.java @@ -42,10 +42,10 @@ public class FCDotBYD1604DashP8HTest { @Test public void testValues() throws Exception { - Assertions.assertEquals(64, FCDotBYD1604DashP8H.length()); + Assertions.assertEquals(27, FCDotBYD0127DashP7D.length()); boolean duplicate = false; - Map global = new HashMap<>(); - for (FCDotBYD1604DashP8H v : FCDotBYD1604DashP8H.values()) { + Map global = new HashMap<>(); + for (FCDotBYD0127DashP7D v : FCDotBYD0127DashP7D.values()) { Assertions.assertNotNull(v); if (global.containsKey(v.codePoints()[0])) { duplicate = true; @@ -60,14 +60,14 @@ public class FCDotBYD1604DashP8HTest { @Test public void testDisplay() throws Exception { List cdc = new ArrayList<>(); - cdc.add(FCDotBYD1604DashP8H.BOX2_A); - cdc.add(FCDotBYD1604DashP8H.BOX2_B); - cdc.add(FCDotBYD1604DashP8H.BOX2_B); - cdc.add(FCDotBYD1604DashP8H.BOX2_A); - cdc.add(FCDotBYD1604DashP8H.BOX1_1); - cdc.add(FCDotBYD1604DashP8H.BOX1_3); - cdc.add(FCDotBYD1604DashP8H.BOX1_3); - cdc.add(FCDotBYD1604DashP8H.BOX1_7); + cdc.add(FCDotBYD0127DashP7D.BOX2_A); + cdc.add(FCDotBYD0127DashP7D.BOX2_B); + cdc.add(FCDotBYD0127DashP7D.BOX2_B); + cdc.add(FCDotBYD0127DashP7D.BOX2_A); + cdc.add(FCDotBYD0127DashP7D.BOX1_1); + cdc.add(FCDotBYD0127DashP7D.BOX1_3); + cdc.add(FCDotBYD0127DashP7D.BOX1_3); + cdc.add(FCDotBYD0127DashP7D.BOX1_7); Assertions.assertEquals("═╩╩═╵└└├", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); } diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashP7Test.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotDEC0127DashP7GTest.java similarity index 61% rename from nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashP7Test.java rename to nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotDEC0127DashP7GTest.java index 27bc833..32b560f 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashP7Test.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotDEC0127DashP7GTest.java @@ -37,33 +37,51 @@ import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash10; * @author Willem Cazander * @version 1.0 Jan 08, 2025 */ -public class FCDotDEC1604DashP7Test { +public class FCDotDEC0127DashP7GTest { @Test public void testSize() throws Exception { - Assertions.assertEquals(64, FCDotDEC1604DashP7.length()); + Assertions.assertEquals(27, FCDotDEC0127DashPX0.values().length); } @Test public void testBaklavaSequence() throws Exception { - int[] seq = FCDotDEC1604DashP7.NX_CURSOR_GOTO.baklavaPoints(); - Assertions.assertEquals(2, seq.length); - Assertions.assertEquals(FCDotCDC1604DashP6.__ESC6.ordinal(), seq[0]); - Assertions.assertEquals(FCDotCDC1604DashP6.NX25_Y.ordinal(), seq[1]); - Assertions.assertEquals(FCDotDEC1604DashP7.NX_BELL.ordinal(), FCDotCDC1604DashP6.NX27_AMPERSAND.ordinal()); + int[] seq = null; + seq = FCDotDEC0127DashPX0._ESC_USER_1.baklavaPoints(); + Assertions.assertEquals(3, seq.length); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1.ordinal(), seq[0]); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1.ordinal(), seq[1]); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1.ordinal(), seq[2]); + + seq = FCDotDEC0127DashPX0.ESC_VT06.baklavaPoints(); + Assertions.assertEquals(3, seq.length); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1.ordinal(), seq[0]); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X2.ordinal(), seq[1]); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3.ordinal(), seq[2]); + + seq = FCDotDEC0127DashPX0.ESC_NETHER.baklavaPoints(); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X2.ordinal(), seq[0]); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X2.ordinal(), seq[1]); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3.ordinal(), seq[2]); + + seq = FCDotDEC0127DashPX0.ESC_STOP.baklavaPoints(); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3.ordinal(), seq[0]); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3.ordinal(), seq[1]); + Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3.ordinal(), seq[2]); } + /* @Test public void testCusorGoto() throws Exception { List cdc = new ArrayList<>(); - cdc.add(FCDotDEC1604DashP7.NX_CURSOR_GOTO); - cdc.add(FCDotDEC1604DashP7.VT_RAKA_AT); + cdc.add(FCDotDEC0127DashP7G.NX_CURSOR_GOTO); + cdc.add(FCDotDEC0127DashP7G.VT_RAKA_AT); cdc.add(FCDotCDC1604DashP6.NX25_Y); - cdc.add(FCDotDEC1604DashP7.VT_RAKA_AT); + cdc.add(FCDotDEC0127DashP7G.VT_RAKA_AT); cdc.addAll(FCDotPIE9CDash10.toDecimalsX06(123)); - cdc.add(FCDotDEC1604DashP7.VT_RAKA_AT); + cdc.add(FCDotDEC0127DashP7G.VT_RAKA_AT); cdc.addAll(FCDotPIE9CDash10.toDecimalsX06(456)); - cdc.add(FCDotDEC1604DashP7.VT_SALAH); + cdc.add(FCDotDEC0127DashP7G.VT_SALAH); Assertions.assertEquals("␃Y␃?Y␃?␁JBCD␃?␁JEFG␃!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); Assertions.assertEquals("?Y?123?456!", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); @@ -72,11 +90,12 @@ public class FCDotDEC1604DashP7Test { @Test public void testClearTop5Lines() throws Exception { List cdc = new ArrayList<>(); - cdc.add(FCDotDEC1604DashP7.NX_CLEAR_TOP); - cdc.add(FCDotDEC1604DashP7.VT_RAKA_AT); + cdc.add(FCDotDEC0127DashP7G.NX_CLEAR_TOP); + cdc.add(FCDotDEC0127DashP7G.VT_RAKA_AT); cdc.addAll(FCDotPIE9CDash10.toDecimalsX06(5)); - cdc.add(FCDotDEC1604DashP7.VT_SALAH); + cdc.add(FCDotDEC0127DashP7G.VT_SALAH); Assertions.assertEquals("␃E␃?␁JF␃!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); } + */ }