From 055815712a86c9db1c539ee4e2b1f74b208d2eaf Mon Sep 17 00:00:00 2001 From: Willem Date: Tue, 7 Jan 2025 00:12:52 +0100 Subject: [PATCH] WIP filling math symbols --- .../org/x4o/o2o/fc18/FourCornerDotCake.java | 104 +++++- .../o2o/fc18/FourCornerUnicodeDisplay.java | 294 ++++++++++++--- .../x4o/o2o/fc18/FourCornerUnicodeImport.java | 156 ++++---- .../fc18/FourCornerX00PetitVidePoints.java | 62 ++++ ...t.java => FourCornerX06BaklavaPoints.java} | 4 +- ...nt.java => FourCornerX08MuffinPoints.java} | 4 +- ...oint.java => FourCornerX18CakePoints.java} | 4 +- ...oint.java => FourCornerX21CodePoints.java} | 4 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashA.java | 12 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashB.java | 7 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashC.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashD.java | 8 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashE.java | 7 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashF.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashG.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashH.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashI.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashJ.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashK.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashL.java | 7 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashM.java | 9 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashN.java | 10 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashO.java | 12 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashP.java | 8 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashQ.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashR.java | 9 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashS.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashT.java | 7 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashU.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashV.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashW.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashX.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashY.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLK9PDashZ.java | 6 +- .../x4o/o2o/fc18/clk9p/FCDotCLKSource.java | 8 +- ...int.java => FCDotCLKSourceCakePoints.java} | 4 +- .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash01.java | 67 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash02.java | 68 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash03.java | 69 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash04.java | 70 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash05.java | 71 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash06.java | 72 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash07.java | 73 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash08.java | 74 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash09.java | 75 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash10.java | 76 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash11.java | 77 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash12.java | 78 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash13.java | 79 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash14.java | 80 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash15.java | 81 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash16.java | 82 ++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash17.java | 83 +++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash18.java | 84 +++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash19.java | 85 +++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash20.java | 110 ++++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash21.java | 87 +++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash22.java | 88 +++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash23.java | 89 +++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash24.java | 90 +++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash25.java | 91 +++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash26.java | 92 +++++ .../x4o/o2o/fc18/pie9c/FCDotPIE9CDash27.java | 93 +++++ .../org/x4o/o2o/fc18/pie9c/package-info.java | 30 ++ ...110DashA4.java => FCDotAMD0110DashDA.java} | 10 +- .../o2o/fc18/zero33/FCDotAPL1604DashS6.java | 349 +++++++++--------- .../o2o/fc18/zero33/FCDotBMW0102DashD1.java | 8 +- .../o2o/fc18/zero33/FCDotBYD1604DashC6.java | 26 +- .../o2o/fc18/zero33/FCDotCDC1604DashP6.java | 71 ++-- .../o2o/fc18/zero33/FCDotDEC1604DashE6.java | 37 +- .../o2o/fc18/zero33/FCDotIBM1616DashD8.java | 8 +- .../o2o/fc18/zero33/FCDotNCR1632Dash0F.java | 8 +- .../o2o/fc18/zero33/FCDotNCR1632Dash0M.java | 8 +- .../o2o/fc18/zero33/FCDotNCR1632Dash1T.java | 8 +- .../o2o/fc18/zero33/FCDotNCR1632Dash1V.java | 8 +- .../o2o/fc18/zero33/FCDotOCE0801DashH3.java | 8 +- .../o2o/fc18/zero33/FCDotOCE0808DashH6.java | 8 +- .../o2o/fc18/zero33/FCDotOCE0864DashH9.java | 8 +- .../x4o/o2o/fc18/FourCornerDotCakeTest.java | 3 +- .../fc18/FourCornerUnicodeDisplayTest.java | 61 ++- .../o2o/fc18/FourCornerUnicodeImportTest.java | 72 ++-- .../o2o/fc18/FourCornerWriteExampleMD.java | 328 ++++++++++++++++ .../fc18/zero33/FCDotAPL1604DashS6Test.java | 4 +- .../fc18/zero33/FCDotBYD1604DashC6Test.java | 4 +- .../fc18/zero33/FCDotCDC1604DashP6Test.java | 4 +- 85 files changed, 3540 insertions(+), 545 deletions(-) create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX00PetitVidePoints.java rename nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/{FourCornerX06BaklavaPoint.java => FourCornerX06BaklavaPoints.java} (93%) rename nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/{FourCornerX08MuffinPoint.java => FourCornerX08MuffinPoints.java} (93%) rename nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/{FourCornerX18CakePoint.java => FourCornerX18CakePoints.java} (93%) rename nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/{FourCornerX21CodePoint.java => FourCornerX21CodePoints.java} (93%) rename nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/{FCDotCLKSourceCakePoint.java => FCDotCLKSourceCakePoints.java} (93%) create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash01.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash02.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash03.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash04.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash05.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash06.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash07.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash08.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash09.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash10.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash11.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash12.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash13.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash14.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash15.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash16.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash17.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash18.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash19.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash20.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash21.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash22.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash23.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash24.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash25.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash26.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash27.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/package-info.java rename nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/{FCDotAMD0110DashA4.java => FCDotAMD0110DashDA.java} (85%) create mode 100644 nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerWriteExampleMD.java 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 11d4f12..8bcc516 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 @@ -24,6 +24,38 @@ package org.x4o.o2o.fc18; import java.util.Optional; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash01; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash02; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash03; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash04; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash05; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash06; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash07; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash08; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash09; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash10; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash11; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash12; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash13; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash14; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash15; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash16; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash17; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash18; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash19; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash20; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash21; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash22; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash23; +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.FCDotAPL1604DashS6; +import org.x4o.o2o.fc18.zero33.FCDotBYD1604DashC6; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC1604DashE6; + /// The dot cake index of four corner 18 bit words in cake slices which holds the cake points. /// /// @author Willem Cazander @@ -33,23 +65,57 @@ public enum FourCornerDotCake { // =========== Allow small terminators to take over 6 bit main frame computers /// Character Dough Cake - FC_CDC1604_P6(0, 64), + FC_CDC1604_P6(0, 64, FCDotCDC1604DashP6.values()), /// Direct or Escaped Control - FC_DEC1604_E6(64, 64), - /// A Programming Language - FC_APL1604_S6(128, 64), + FC_DEC1604_E6(64, 64, FCDotDEC1604DashE6.values()), + /// Array Programming Language + FC_APL1604_S6(128, 64, FCDotAPL1604DashS6.values()), /// Block Your Display - FC_BYD1604_C6(192, 64), + FC_BYD1604_C6(192, 64, FCDotBYD1604DashC6.values()), + + // =========== Allow pie terminators for symbols without escaping + + FC_PIE9C_01(256 + 0, 1, FCDotPIE9CDash01.values()), + FC_PIE9C_02(1 + FC_PIE9C_01.getStop(), 2, FCDotPIE9CDash02.values()), + FC_PIE9C_03(1 + FC_PIE9C_02.getStop(), 3, FCDotPIE9CDash03.values()), + FC_PIE9C_04(1 + FC_PIE9C_03.getStop(), 4, FCDotPIE9CDash04.values()), + FC_PIE9C_05(1 + FC_PIE9C_04.getStop(), 5, FCDotPIE9CDash05.values()), + FC_PIE9C_06(1 + FC_PIE9C_05.getStop(), 6, FCDotPIE9CDash06.values()), + FC_PIE9C_07(1 + FC_PIE9C_06.getStop(), 7, FCDotPIE9CDash07.values()), + FC_PIE9C_08(1 + FC_PIE9C_07.getStop(), 8, FCDotPIE9CDash08.values()), + FC_PIE9C_09(1 + FC_PIE9C_08.getStop(), 9, FCDotPIE9CDash09.values()), + FC_PIE9C_10(1 + FC_PIE9C_09.getStop(), 10, FCDotPIE9CDash10.values()), + FC_PIE9C_11(1 + FC_PIE9C_10.getStop(), 11, FCDotPIE9CDash11.values()), + FC_PIE9C_12(1 + FC_PIE9C_11.getStop(), 12, FCDotPIE9CDash12.values()), + FC_PIE9C_13(1 + FC_PIE9C_12.getStop(), 13, FCDotPIE9CDash13.values()), + FC_PIE9C_14(1 + FC_PIE9C_13.getStop(), 14, FCDotPIE9CDash14.values()), + FC_PIE9C_15(1 + FC_PIE9C_14.getStop(), 15, FCDotPIE9CDash15.values()), + FC_PIE9C_16(1 + FC_PIE9C_15.getStop(), 16, FCDotPIE9CDash16.values()), + FC_PIE9C_17(1 + FC_PIE9C_16.getStop(), 17, FCDotPIE9CDash17.values()), + FC_PIE9C_18(1 + FC_PIE9C_17.getStop(), 18, FCDotPIE9CDash18.values()), + FC_PIE9C_19(1 + FC_PIE9C_18.getStop(), 19, FCDotPIE9CDash19.values()), + FC_PIE9C_20(1 + FC_PIE9C_19.getStop(), 20, FCDotPIE9CDash20.values()), + FC_PIE9C_21(1 + FC_PIE9C_20.getStop(), 21, FCDotPIE9CDash21.values()), + FC_PIE9C_22(1 + FC_PIE9C_21.getStop(), 22, FCDotPIE9CDash22.values()), + FC_PIE9C_23(1 + FC_PIE9C_22.getStop(), 23, FCDotPIE9CDash23.values()), + FC_PIE9C_24(1 + FC_PIE9C_23.getStop(), 24, FCDotPIE9CDash24.values()), + FC_PIE9C_25(1 + FC_PIE9C_24.getStop(), 25, FCDotPIE9CDash25.values()), + FC_PIE9C_26(1 + FC_PIE9C_25.getStop(), 26, FCDotPIE9CDash26.values()), + FC_PIE9C_27(1 + FC_PIE9C_26.getStop(), 27, FCDotPIE9CDash27.values()), + + __RESERVED_PIE_SYMBOLS(1 + FC_PIE9C_27.getStop(), 768 - 1 - FC_PIE9C_27.getStop()), // =========== Allow end-user select rendering of data gram packet per context /// Interim Byte Mode, embed raw 8 bit Data - FC_IBM1616_D8(256, 256), + FC_IBM1616_D8(768, 256), /// Reserved for future data grams use - __RESERVED_DATAGRAMS(512, 1452-512), - + __RESERVED_DATAGRAMS(1024, 1448-1024), + /// Application Methodoums Decimals, normal decimal numbers 0-9 - FC_AMD0110_A4(1452, 10), + FC_AMD0110_DA(1448, 10), + /// Direct Nuclear Air strike for quadratonic values + FC_DNA0104_D2(1458, 4), /// Binary Model Word encoding for bit 0 and bit 1 notation FC_BMW0102_D1(1462, 2), @@ -123,10 +189,16 @@ public enum FourCornerDotCake { private final int start; private final int stop; + private final FourCornerX00PetitVidePoints[] videPoints; private FourCornerDotCake(int start, int size) { + this(start, size, new FourCornerX00PetitVidePoints[] {}); + } + + private FourCornerDotCake(int start, int size, FourCornerX00PetitVidePoints[] videPoints) { this.start = start; this.stop = start + size - 1; + this.videPoints = videPoints; } public int getStart() { @@ -141,6 +213,20 @@ public enum FourCornerDotCake { return stop - start + 1; } + public String qname() { + String name = name(); + if (name.startsWith("_")) { + return name; + } + name = name.replaceFirst("FC_", "FC."); + name = name.replaceAll("_", "-"); + return name; + } + + public FourCornerX00PetitVidePoints[] getVidePoints() { + return videPoints; + } + public static Optional valueOfInt18(int smurfPaint) { for (FourCornerDotCake value:values()) { if (smurfPaint >= value.getStart() && smurfPaint <= value.getStop()) { 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 b9231a5..ea1b72b 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 @@ -23,11 +23,44 @@ package org.x4o.o2o.fc18; import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.function.Consumer; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash01; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash02; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash03; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash04; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash05; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash06; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash07; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash08; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash09; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash10; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash11; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash12; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash13; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash14; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash15; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash16; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash17; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash18; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash19; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash20; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash21; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash22; +import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash23; +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.FCDotAPL1604DashS6; +import org.x4o.o2o.fc18.zero33.FCDotBYD1604DashC6; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; +import org.x4o.o2o.fc18.zero33.FCDotDEC1604DashE6; import org.x4o.o2o.octal.PrimordialOctalOrangeJuiceCord; /// Renders unicode from four corner 18 bit text. @@ -36,15 +69,14 @@ import org.x4o.o2o.octal.PrimordialOctalOrangeJuiceCord; /// @version 1.0 Dec 28, 2024 public class FourCornerUnicodeDisplay { - static private final FourCornerUnicodeDisplay DISPLAY_6BIT = new FourCornerUnicodeDisplay(false, null); - static private final FourCornerUnicodeDisplay DISPLAY_8BIT = new FourCornerUnicodeDisplay(true, null); - static private final FourCornerUnicodeDisplay DISPLAY_ESKIMO = new FourCornerUnicodeDisplay(true, "ᐧ"); - private boolean renderCasing = false; + static private final FourCornerUnicodeDisplay DISPLAY_6BIT = new FourCornerUnicodeDisplay(null); + static private final FourCornerUnicodeDisplay DISPLAY_8BIT = new FourCornerUnicodeDisplay(null); private String renderSeperator = null; + private final Map> int18To21 = new HashMap<>(); - private FourCornerUnicodeDisplay(boolean renderCasing, String renderSeperator) { - this.renderCasing = renderCasing; + private FourCornerUnicodeDisplay(String renderSeperator) { this.renderSeperator = renderSeperator; + mapPoints(); } static FourCornerUnicodeDisplay simple() { @@ -55,9 +87,9 @@ public class FourCornerUnicodeDisplay { return DISPLAY_8BIT; } - static FourCornerUnicodeDisplay mixedᐧEskimo() { - return DISPLAY_ESKIMO; - } +// static FourCornerUnicodeDisplay mixedᐧEskimo() { +// return new FourCornerUnicodeDisplay(true, "ᐧ"); +// } private String buildString(Consumer appender) { @@ -66,12 +98,18 @@ public class FourCornerUnicodeDisplay { return buf.toString(); } - public String renderFromP6(List chars) { + public String renderFromP6(List chars) { return buildString(v -> renderFromP6(chars, v)); } - public void renderFromP6(List chars, StringBuilder buf) { - renderFromInt18(chars.stream().map(v -> v.ordinal()).toList(), buf); + public void renderFromP6(List chars, StringBuilder buf) { + List charPoints = new ArrayList<>(chars.size()); + for (FourCornerX06BaklavaPoints baklava : chars) { + for (int v : baklava.baklavaPoints()) { + charPoints.add(v); + } + } + renderFromInt18(charPoints, buf); } public String renderFromJuice(PrimordialOctalOrangeJuiceCord chars) { @@ -91,21 +129,30 @@ public class FourCornerUnicodeDisplay { public void renderFromInt18(List chars, StringBuilder buf) { Iterator cdc = chars.iterator(); Integer numberMode = null; - boolean prevLetter = false; - boolean toUpper = false; + boolean numberPIE = true; + boolean prevWord = false; while (cdc.hasNext()) { Integer cdcPoint = cdc.next(); + if (FCDotCDC1604DashP6.__ESC6.ordinal() == cdcPoint) { + numberMode = null; // out of range, thus stop + Integer handled = handleEscape6(cdc, buf); + if (handled == null) { + continue; + } + cdcPoint = handled; // out of range, is back to normal + } if (numberMode != null && (cdcPoint > numberMode)) { numberMode = null; // out of range } if (numberMode != null && (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal())) { numberMode = null; // below index 1 is end number mode } - if (FCDotCDC1604DashP6.__PIE.ordinal() == cdcPoint) { + if (FCDotCDC1604DashP6.__PIE.ordinal() == cdcPoint || FCDotCDC1604DashP6.__PIN.ordinal() == cdcPoint) { if (!cdc.hasNext()) { break; } numberMode = cdc.next(); + numberPIE = FCDotCDC1604DashP6.__PIE.ordinal() == cdcPoint; // is false for PIN if (numberMode < FCDotCDC1604DashP6.NX01_A.ordinal()) { cdcPoint = numberMode; // print char numberMode = null; // illegal number mode @@ -113,61 +160,194 @@ public class FourCornerUnicodeDisplay { continue; } } - if (FCDotCDC1604DashP6.__GLUE.ordinal() == cdcPoint) { - if (renderCasing) { - toUpper = true; - } - if (renderSeperator != null && prevLetter) { - buf.append(renderSeperator); + + if (numberMode != null) { + if (numberPIE) { + int terminatorNum = numberMode - FCDotCDC1604DashP6.NX01_A.ordinal() + 1; + int valueNumberZero = cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal(); + int[] chs = pieTerminatorNumber(terminatorNum, valueNumberZero); + Arrays.stream(chs).forEach(v -> buf.appendCodePoint(v)); + } else { // _PIN = ²⁄₁₂ + int terminatorNum = numberMode - FCDotCDC1604DashP6.NX01_A.ordinal() + 1; + int valueNumberOne = cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal() + 1; + List math = new ArrayList<>(); + FCDotPIE9CDash20.toScriptSuper(valueNumberOne).forEach(v -> { + for (int chr : v.cakePoints()) { + math.add(chr); + } + }); + math.add(FCDotCDC1604DashP6.BAR_V_RIGHT.ordinal()); + FCDotPIE9CDash20.toScriptSub(terminatorNum).forEach(v -> { + for (int chr : v.cakePoints()) { + math.add(chr); + } + }); + renderFromInt18(math, buf); } + prevWord = false; continue; } - if (numberMode == null) { - prevLetter = cdcPoint >= FCDotCDC1604DashP6.NX01_A.ordinal(); - if (cdcPoint < FCDotCDC1604DashP6.length()) { - int ch = FCDotCDC1604DashP6.indexOf(cdcPoint).codePoint(); - if (renderCasing) { - if (toUpper) { - toUpper = false; - buf.appendCodePoint(ch); // revered casing as default is upper - } else { - buf.appendCodePoint(Character.toLowerCase(ch)); - } - } else { - buf.appendCodePoint(ch); - } - - } else { - // FIXME: print hex of 4C word until later print correct words for locate from nether db. - buf.append("&#x"); - buf.append(Integer.toHexString(cdcPoint).toUpperCase()); - buf.append(";"); + + if (cdcPoint < FCDotCDC1604DashP6.length()) { + prevWord = false; + int[] chs = FCDotCDC1604DashP6.indexOf(cdcPoint).codePoints(); + Arrays.stream(chs).forEach(v -> buf.appendCodePoint(v)); + } else if (cdcPoint >= FourCornerDotCake.FC_PIE9C_01.getStart() && cdcPoint <= FourCornerDotCake.FC_PIE9C_27.getStop()) { + prevWord = false; + List chs = int18To21.get(cdcPoint); + if (chs != null) { + chs.forEach(v -> buf.appendCodePoint(v)); } } else { - int terminatorNum = numberMode - FCDotCDC1604DashP6.NX01_A.ordinal() + 1; - int valueNumber = cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal(); - appendTerminatorNumber(buf, terminatorNum, valueNumber); + if (prevWord) { + buf.append(renderSeperator); + } + prevWord = true; + + // FIXME: print hex of 4C word until later print correct words for locate from nether db. + buf.append("&#x"); + buf.append(Integer.toHexString(cdcPoint).toUpperCase()); + buf.append(";"); } } } - static private void appendTerminatorNumber(StringBuilder buf, int terminator, int value) { + private Integer handleEscape6(Iterator cdc, StringBuilder buf) { + if (!cdc.hasNext()) { + return null; + } + FCDotDEC1604DashE6 decCode = FCDotDEC1604DashE6.indexOf(cdc.next()); + if (FCDotDEC1604DashE6.__NUL_DEC.equals(decCode)) { + buf.append(FCDotCDC1604DashP6.escapeSignUnicode(FCDotCDC1604DashP6.__NUL.ordinal())); + return null; + } + if (FCDotDEC1604DashE6.__ESC6_APL.equals(decCode)) { + if (!cdc.hasNext()) { + return null; + } + FCDotAPL1604DashS6 aplCode = FCDotAPL1604DashS6.indexOf(cdc.next()); + Arrays.stream(aplCode.codePoints()).forEach(v -> buf.appendCodePoint(v)); + return null; + } + if (FCDotDEC1604DashE6.__ESC6_BYD.equals(decCode)) { + if (!cdc.hasNext()) { + return null; + } + FCDotBYD1604DashC6 bydCode = FCDotBYD1604DashC6.indexOf(cdc.next()); + Arrays.stream(bydCode.codePoints()).forEach(v -> buf.appendCodePoint(v)); + return null; + } + if (FCDotDEC1604DashE6.__ESC_STOP.equals(decCode)) { + return null; + } + if (FCDotDEC1604DashE6.__ESC68_FC18.equals(decCode)) { + return decCode.ordinal(); // todo handle + } + if (FCDotDEC1604DashE6.__ESC_BELOW.equals(decCode)) { + if (!cdc.hasNext()) { + return null; + } + int checkChr = cdc.next(); + int idx = checkChr - FCDotCDC1604DashP6.NX01_A.ordinal(); + if (idx > 26 || idx < 0) { + return checkChr; // can't handle this + } + buf.append(FCDotCDC1604DashP6.escapeSignUnicode(FCDotCDC1604DashP6.__ESC6.ordinal())); + FCDotPIE9CDash26 lowCode = FCDotPIE9CDash26.values()[idx]; + Arrays.stream(lowCode.codePoints()).forEach(v -> buf.appendCodePoint(v)); + return null; + } + buf.append(FCDotCDC1604DashP6.escapeSignUnicode(FCDotCDC1604DashP6.__ESC6.ordinal())); + return decCode.ordinal(); + } + + private void mapPoints() { + for (FourCornerDotCake slice : FourCornerDotCake.values()) { + FourCornerX00PetitVidePoints[] videPoints = slice.getVidePoints(); + if (videPoints.length == 0) { + continue; + } + mapPoints(videPoints); + } + } + + private void mapPoints(FourCornerX00PetitVidePoints[] videPoints) { + for (FourCornerX00PetitVidePoints videPoint : videPoints) { + if (!videPoint.isX18()) { + continue; + } + if (!videPoint.isX21()) { + continue; + } + FourCornerX18CakePoints x18 = videPoint.toX18(); + FourCornerX21CodePoints x21 = videPoint.toX21(); + if (x18.cakePoints().length > 1) { + continue; + } + int char18 = x18.cakePoints()[0]; + List chs = new ArrayList<>(); + int[] char21 = x21.codePoints(); + Arrays.stream(char21).forEach(v -> chs.add(v)); + int18To21.put(char18, chs); + } + } + + static private int[] pieTerminatorNumber(int terminator, int value) { switch (terminator) { case 1: - buf.appendCodePoint('0'); // T001 is zero for all 27 gematria number systems. - return; + return FCDotPIE9CDash01.values()[value].codePoints(); case 2: - if (value == 0) { - buf.append("true"); // FIXME: T002ᖟGunPunchedHoles would be better, as it supports two-way conversion - } else { - buf.append("false"); - } - return; - //case 3: - // return; // TODO: after nether DB, generate add all terminator up to 27 from "number system" gun bullets. + return FCDotPIE9CDash02.values()[value].codePoints(); + case 3: + return FCDotPIE9CDash03.values()[value].codePoints(); + case 4: + return FCDotPIE9CDash04.values()[value].codePoints(); + case 5: + return FCDotPIE9CDash05.values()[value].codePoints(); + case 6: + return FCDotPIE9CDash06.values()[value].codePoints(); + case 7: + return FCDotPIE9CDash07.values()[value].codePoints(); + case 8: + return FCDotPIE9CDash08.values()[value].codePoints(); case 9: - buf.appendCodePoint(('1' + value)); // 0 = 1 - return; // NOTE: Latin decimals are not decimals as zero is not a part of the pie. + return FCDotPIE9CDash09.values()[value].codePoints(); + case 10: + return FCDotPIE9CDash10.values()[value].codePoints(); + case 11: + return FCDotPIE9CDash11.values()[value].codePoints(); + case 12: + return FCDotPIE9CDash12.values()[value].codePoints(); + case 13: + return FCDotPIE9CDash13.values()[value].codePoints(); + case 14: + return FCDotPIE9CDash14.values()[value].codePoints(); + case 15: + return FCDotPIE9CDash15.values()[value].codePoints(); + case 16: + return FCDotPIE9CDash16.values()[value].codePoints(); + case 17: + return FCDotPIE9CDash17.values()[value].codePoints(); + case 18: + return FCDotPIE9CDash18.values()[value].codePoints(); + case 19: + return FCDotPIE9CDash19.values()[value].codePoints(); + case 20: + return FCDotPIE9CDash20.values()[value].codePoints(); + case 21: + return FCDotPIE9CDash21.values()[value].codePoints(); + case 22: + return FCDotPIE9CDash22.values()[value].codePoints(); + case 23: + return FCDotPIE9CDash23.values()[value].codePoints(); + case 24: + return FCDotPIE9CDash24.values()[value].codePoints(); + case 25: + return FCDotPIE9CDash25.values()[value].codePoints(); + case 26: + return FCDotPIE9CDash26.values()[value].codePoints(); + case 27: + return FCDotPIE9CDash27.values()[value].codePoints(); default: throw new IllegalArgumentException("Unsupported terminator index: " + terminator); } 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 cefff0e..0e89437 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 @@ -23,7 +23,10 @@ package org.x4o.o2o.fc18; import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.PrimitiveIterator; import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; @@ -38,15 +41,14 @@ import org.x4o.o2o.octal.PrimordialOctalOrangeString; /// public class FourCornerUnicodeImport { - static private final FourCornerUnicodeImport IMPORT_STRICT = new FourCornerUnicodeImport(false, false); - static private final FourCornerUnicodeImport IMPORT_LOSSY = new FourCornerUnicodeImport(true, true); - private boolean convertLowerCase = false; + static private final FourCornerUnicodeImport IMPORT_STRICT = new FourCornerUnicodeImport(false); + static private final FourCornerUnicodeImport IMPORT_LOSSY = new FourCornerUnicodeImport(true); private boolean convertDiacritics = false; - //private boolean convertWordGlue = false; // FIXME: detect changing case like: " [_GLUE]Abb[_GLUE]A" + private final Map int21ToVide = new HashMap<>(); - public FourCornerUnicodeImport(boolean convertLowerCase, boolean convertDiacritics) { - this.convertLowerCase = convertLowerCase; + public FourCornerUnicodeImport(boolean convertDiacritics) { this.convertDiacritics = convertDiacritics; + mapPoints(); } static public FourCornerUnicodeImport strict() { @@ -62,78 +64,82 @@ public class FourCornerUnicodeImport { } public List convertToInt18(String text) { - return convertToP6(text).stream().map(v -> v.ordinal()).toList(); + return convertToP6(text).stream().map(v -> v.baklavaPoints()[0]).toList(); } - public List convertToP6(String text) { + public List convertToP6(String text) { String textSingleNewLines = text.replaceAll("\r\n", "\n"); // FIXME: regex only allowed in test scope classpath PrimitiveIterator.OfInt i = textSingleNewLines.codePoints().iterator(); - List result = new ArrayList<>(text.length()); - FCDotCDC1604DashP6[] cdcChars = FCDotCDC1604DashP6.values(); + List result = new ArrayList<>(text.length()); FCDotCDC1604DashP6 cdcNumberTerminator = null; + FCDotCDC1604DashP6 cdcCaseTerminator = null; while (i.hasNext()) { int codePoint = i.next(); - boolean found = false; + + // Is not mapped, so handle with code if ('\r' == codePoint) { result.add(FCDotCDC1604DashP6.__LINE); + cdcNumberTerminator = null; + cdcCaseTerminator = null; continue; } - for (FCDotCDC1604DashP6 v : cdcChars) { - if (v.codePoint() == codePoint) { - result.add(v); - found = true; - cdcNumberTerminator = null; - break; + + // Handle number sequences manual, to escape once + if (codePoint >= '0' && codePoint <= '9') { + if (!FCDotCDC1604DashP6.NX10_J.equals(cdcNumberTerminator)) { + result.add(FCDotCDC1604DashP6.__PIE); + result.add(FCDotCDC1604DashP6.NX10_J); + cdcNumberTerminator = FCDotCDC1604DashP6.NX10_J; } - if ('0' == codePoint) { - if (!FCDotCDC1604DashP6.NX01_A.equals(cdcNumberTerminator)) { - result.add(FCDotCDC1604DashP6.__PIE); - result.add(FCDotCDC1604DashP6.NX01_A); - cdcNumberTerminator = FCDotCDC1604DashP6.NX01_A; - } - result.add(FCDotCDC1604DashP6.NX01_A); - found = true; - break; + int cdcNumberOff = codePoint - '0'; + int cdcNumber = FCDotCDC1604DashP6.NX01_A.ordinal() + cdcNumberOff; + result.add(FCDotCDC1604DashP6.indexOf(cdcNumber)); + continue; + } + if (cdcNumberTerminator != null) { + cdcNumberTerminator = null; + result.add(FCDotCDC1604DashP6.__ESC6); + result.add(FCDotCDC1604DashP6.__ESC6); + } + + // Handle lower case sequences manual, to escape once + if (codePoint >= 'a' && codePoint <= 'z') { + if (!FCDotCDC1604DashP6.NX26_Z.equals(cdcCaseTerminator)) { + result.add(FCDotCDC1604DashP6.__PIE); + result.add(FCDotCDC1604DashP6.NX26_Z); + cdcCaseTerminator = FCDotCDC1604DashP6.NX26_Z; } - if (codePoint >= '1' && codePoint <= '9') { - if (!FCDotCDC1604DashP6.NX09_I.equals(cdcNumberTerminator)) { - result.add(FCDotCDC1604DashP6.__PIE); - result.add(FCDotCDC1604DashP6.NX09_I); - cdcNumberTerminator = FCDotCDC1604DashP6.NX09_I; - } - int cdcNumberOff = codePoint - '1'; // 0 = 1 - int cdcNumber = FCDotCDC1604DashP6.NX01_A.ordinal() + cdcNumberOff; - result.add(FCDotCDC1604DashP6.indexOf(cdcNumber)); - found = true; - break; + int cdcNumberOff = codePoint - 'a'; + int cdcNumber = FCDotCDC1604DashP6.NX01_A.ordinal() + cdcNumberOff; + result.add(FCDotCDC1604DashP6.indexOf(cdcNumber)); + continue; + } + if (cdcCaseTerminator != null) { + cdcCaseTerminator = null; + result.add(FCDotCDC1604DashP6.__ESC6); + result.add(FCDotCDC1604DashP6.__ESC6); + } + + // Lookup mapped values + FourCornerX00PetitVidePoints chs = int21ToVide.get(codePoint); + if (chs != null) { + if (!chs.isX06()) { + continue; + } + Arrays.stream(chs.toX06().baklavaPoints()).mapToObj(v -> FCDotCDC1604DashP6.indexOf(v)).forEach(v -> result.add(v)); + continue; + } + + // Check lossy aliases + if (convertDiacritics) { + String codePointStr = new StringBuilder().appendCodePoint(codePoint).toString(); + FCDotCDC1604DashP6 alias = checkDiacriticAlias(codePointStr); + if (alias != null) { + result.add(alias); + continue; } } - if (!found) { - String codePointStr = Character.toString(codePoint); - for (FCDotCDC1604DashP6 v : cdcChars) { - if (convertLowerCase) { - byte codePointLower = (byte) Character.toLowerCase(v.codePoint()); - if (codePointLower == codePoint) { - result.add(v); - found = true; - cdcNumberTerminator = null; - break; - } - } - if (convertDiacritics) { - FCDotCDC1604DashP6 alias = checkDiacriticAlias(codePointStr); - if (alias != null) { - result.add(alias); - found = true; - cdcNumberTerminator = null; - break; - } - } - } - } - if (!found) { - throw new IllegalArgumentException("Unsupported char: '" + ((char)codePoint) + "' 0x" + Integer.toHexString(codePoint)); - } + throw new IllegalArgumentException("Unsupported char: '" + ((char)codePoint) + "' 0x" + Integer.toHexString(codePoint)); } return result; } @@ -222,4 +228,28 @@ public class FourCornerUnicodeImport { } return null; } + + private void mapPoints() { + for (FourCornerDotCake slice : FourCornerDotCake.values()) { + FourCornerX00PetitVidePoints[] videPoints = slice.getVidePoints(); + if (videPoints.length == 0) { + continue; + } + mapPoints(videPoints); + } + } + + private void mapPoints(FourCornerX00PetitVidePoints[] videPoints) { + for (FourCornerX00PetitVidePoints videPoint : videPoints) { + if (!videPoint.isX21()) { + continue; + } + FourCornerX21CodePoints x21 = videPoint.toX21(); + if (x21.codePoints().length > 1) { + continue; + } + int char21 = x21.codePoints()[0]; + int21ToVide.put(char21, videPoint); + } + } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX00PetitVidePoints.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX00PetitVidePoints.java new file mode 100644 index 0000000..25955d2 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX00PetitVidePoints.java @@ -0,0 +1,62 @@ +/* + * 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; + +/// Empty petit points interface +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +public interface FourCornerX00PetitVidePoints { + + default boolean isX06() { + return this instanceof FourCornerX06BaklavaPoints; + } + + default boolean isX08() { + return this instanceof FourCornerX08MuffinPoints; + } + + default boolean isX18() { + return this instanceof FourCornerX18CakePoints; + } + + default boolean isX21() { + return this instanceof FourCornerX21CodePoints; + } + + default FourCornerX06BaklavaPoints toX06() { + return FourCornerX06BaklavaPoints.class.cast(this); + } + + default FourCornerX08MuffinPoints toX08() { + return FourCornerX08MuffinPoints.class.cast(this); + } + + default FourCornerX18CakePoints toX18() { + return FourCornerX18CakePoints.class.cast(this); + } + + default FourCornerX21CodePoints toX21() { + return FourCornerX21CodePoints.class.cast(this); + } +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoints.java similarity index 93% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoint.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoints.java index 8022269..8441138 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoint.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoints.java @@ -26,8 +26,8 @@ package org.x4o.o2o.fc18; /// /// @author Willem Cazander /// @version 1.0 Jan 1, 2025 -public interface FourCornerX06BaklavaPoint { +public interface FourCornerX06BaklavaPoints extends FourCornerX00PetitVidePoints { /// One baklava piece weights 52 gram - int baklavaPoint(); + int[] baklavaPoints(); } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoints.java similarity index 93% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoint.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoints.java index 8d39615..3ee5ae0 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoint.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoints.java @@ -26,8 +26,8 @@ package org.x4o.o2o.fc18; /// /// @author Willem Cazander /// @version 1.0 Jan 1, 2025 -public interface FourCornerX08MuffinPoint { +public interface FourCornerX08MuffinPoints extends FourCornerX00PetitVidePoints { /// One muffin piece weights 111 gram - int muffinPoint(); + int[] muffinPoints(); } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX18CakePoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX18CakePoints.java similarity index 93% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX18CakePoint.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX18CakePoints.java index 7f7c138..2246b05 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX18CakePoint.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX18CakePoints.java @@ -26,8 +26,8 @@ package org.x4o.o2o.fc18; /// /// @author Willem Cazander /// @version 1.0 Dec 28, 2024 -public interface FourCornerX18CakePoint { +public interface FourCornerX18CakePoints extends FourCornerX00PetitVidePoints { /// One cake piece weights 800 gram - int cakePoint(); + int[] cakePoints(); } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoints.java similarity index 93% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoint.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoints.java index ec213ec..213c386 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoint.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoints.java @@ -26,8 +26,8 @@ package org.x4o.o2o.fc18; /// /// @author Willem Cazander /// @version 1.0 Jan 1, 2025 -public interface FourCornerX21CodePoint { +public interface FourCornerX21CodePoints extends FourCornerX00PetitVidePoints { /// One code point weights ~1234 gram - int codePoint(); + int[] codePoints(); } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashA.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashA.java index 6b109f1..10d8772 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashA.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashA.java @@ -30,14 +30,18 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 29, 2024 */ -public enum FCDotCLK9PDashA implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashA implements FCDotCLKSourceCakePoints { + AND(FCDotCLKSource.APL_DYADIC, + FCDotCLKSource.VHDL, + FCDotCLKSource.CPP, + FCDotCLKSource.ERLANG, + FCDotCLKSource.PYTHON), ABS(FCDotCLKSource.VHDL), ACCESS(FCDotCLKSource.VHDL), AFTER(FCDotCLKSource.VHDL, FCDotCLKSource.ERLANG), ALIAS(FCDotCLKSource.VHDL), ALL(FCDotCLKSource.VHDL), - AND(FCDotCLKSource.VHDL, FCDotCLKSource.CPP, FCDotCLKSource.ERLANG, FCDotCLKSource.PYTHON), ARCHITECTURE(FCDotCLKSource.VHDL), ARRAY(FCDotCLKSource.VHDL), ASSERT(FCDotCLKSource.VHDL, FCDotCLKSource.JAVA, FCDotCLKSource.PYTHON), @@ -70,7 +74,7 @@ public enum FCDotCLK9PDashA implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_A.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_A.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashB.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashB.java index 8bfab83..ba294f7 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashB.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashB.java @@ -30,8 +30,9 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 29, 2024 */ -public enum FCDotCLK9PDashB implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashB implements FCDotCLKSourceCakePoints { + BINOMIAL(FCDotCLKSource.APL_DYADIC), BEGIN(FCDotCLKSource.VHDL), BLOCK(FCDotCLKSource.VHDL), BODY(FCDotCLKSource.VHDL), @@ -64,7 +65,7 @@ public enum FCDotCLK9PDashB implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_B.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_B.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashC.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashC.java index ae2295f..d4af6cb 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashC.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashC.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashC implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashC implements FCDotCLKSourceCakePoints { CASE(FCDotCLKSource.VHDL, FCDotCLKSource.CPP, @@ -81,7 +81,7 @@ public enum FCDotCLK9PDashC implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_C.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_C.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashD.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashD.java index 1ebb337..0e56857 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashD.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashD.java @@ -30,8 +30,9 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashD implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashD implements FCDotCLKSourceCakePoints { + DIVIDE(FCDotCLKSource.APL_DYADIC, FCDotCLKSource.ERLANG.toQNameAlias("div")), DISCONNECT(FCDotCLKSource.VHDL), DOWNTO(FCDotCLKSource.VHDL), DECLTYPE(FCDotCLKSource.CPP), @@ -40,7 +41,6 @@ public enum FCDotCLK9PDashD implements FCDotCLKSourceCakePoint { DO(FCDotCLKSource.CPP, FCDotCLKSource.JAVA, FCDotCLKSource.RUST, FCDotCLKSource.ES6), DOUBLE(FCDotCLKSource.CPP, FCDotCLKSource.JAVA), DYNAMIC_CAST(FCDotCLKSource.CPP), - DIV(FCDotCLKSource.ERLANG), DYNAMIC(FCDotCLKSource.RUST.toQNameAlias("dyn")), DEFINE(FCDotCLKSource.PYTHON.toQNameAlias("def")), DEBUGGER(FCDotCLKSource.ES6), @@ -58,7 +58,7 @@ public enum FCDotCLK9PDashD implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_D.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_D.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashE.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashE.java index 5869c8b..27d433e 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashE.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashE.java @@ -30,8 +30,9 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashE implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashE implements FCDotCLKSourceCakePoints { + EQUAL(FCDotCLKSource.APL_DYADIC), ELSE(FCDotCLKSource.VHDL, FCDotCLKSource.CPP, FCDotCLKSource.JAVA, @@ -68,7 +69,7 @@ public enum FCDotCLK9PDashE implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_E.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_E.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashF.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashF.java index b8420af..7236e69 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashF.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashF.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashF implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashF implements FCDotCLKSourceCakePoints { FILE(FCDotCLKSource.VHDL), FOR(FCDotCLKSource.VHDL, @@ -67,7 +67,7 @@ public enum FCDotCLK9PDashF implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_F.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_F.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashG.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashG.java index 8848126..9fcb1bf 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashG.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashG.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashG implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashG implements FCDotCLKSourceCakePoints { GENERATE(FCDotCLKSource.VHDL), GENERIC(FCDotCLKSource.VHDL), @@ -52,7 +52,7 @@ public enum FCDotCLK9PDashG implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_G.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_G.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashH.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashH.java index f2251b9..a49ccbc 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashH.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashH.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashH implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashH implements FCDotCLKSourceCakePoints { ; @@ -46,7 +46,7 @@ public enum FCDotCLK9PDashH implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_H.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_H.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashI.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashI.java index 2b90610..670bd65 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashI.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashI.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashI implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashI implements FCDotCLKSourceCakePoints { IF(FCDotCLKSource.VHDL, FCDotCLKSource.CPP, @@ -64,7 +64,7 @@ public enum FCDotCLK9PDashI implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_I.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_I.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashJ.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashJ.java index cd0612f..264de93 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashJ.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashJ.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashJ implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashJ implements FCDotCLKSourceCakePoints { ; @@ -46,7 +46,7 @@ public enum FCDotCLK9PDashJ implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_J.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_J.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashK.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashK.java index b5cadb5..e4b6baa 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashK.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashK.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashK implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashK implements FCDotCLKSourceCakePoints { ; @@ -46,7 +46,7 @@ public enum FCDotCLK9PDashK implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_K.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_K.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashL.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashL.java index 06d6af0..aa3c5c1 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashL.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashL.java @@ -30,8 +30,9 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashL implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashL implements FCDotCLKSourceCakePoints { + LOGARITHM(FCDotCLKSource.APL_DYADIC), LABEL(FCDotCLKSource.VHDL), LIBRARY(FCDotCLKSource.VHDL), LINKAGE(FCDotCLKSource.VHDL), @@ -54,7 +55,7 @@ public enum FCDotCLK9PDashL implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_L.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_L.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashM.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashM.java index 462f14a..6aa93f6 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashM.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashM.java @@ -30,8 +30,11 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashM implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashM implements FCDotCLKSourceCakePoints { + MINUS(FCDotCLKSource.APL_DYADIC), + MINIMUM(FCDotCLKSource.APL_DYADIC), + MAXIMUM(FCDotCLKSource.APL_DYADIC), MAP(FCDotCLKSource.VHDL), MOD(FCDotCLKSource.VHDL, FCDotCLKSource.RUST), MUTABLE(FCDotCLKSource.CPP, FCDotCLKSource.RUST.toQNameAlias("mut")), @@ -55,7 +58,7 @@ public enum FCDotCLK9PDashM implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_M.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_M.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashN.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashN.java index 18aadc3..24cc12a 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashN.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashN.java @@ -30,12 +30,12 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashN implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashN implements FCDotCLKSourceCakePoints { - NAND(FCDotCLKSource.VHDL), + NAND(FCDotCLKSource.APL_DYADIC, FCDotCLKSource.VHDL), + NOR(FCDotCLKSource.APL_DYADIC, FCDotCLKSource.VHDL), NEW(FCDotCLKSource.VHDL, FCDotCLKSource.CPP, FCDotCLKSource.JAVA, FCDotCLKSource.ES6), NEXT(FCDotCLKSource.VHDL), - NOR(FCDotCLKSource.VHDL), NOT(FCDotCLKSource.VHDL, FCDotCLKSource.CPP, FCDotCLKSource.ERLANG, FCDotCLKSource.PYTHON), NULL(FCDotCLKSource.VHDL, FCDotCLKSource.JAVA, FCDotCLKSource.ES6), NAMESPACE(FCDotCLKSource.CPP), @@ -59,7 +59,7 @@ public enum FCDotCLK9PDashN implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_N.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_N.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashO.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashO.java index 9bcd46f..53534d2 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashO.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashO.java @@ -30,12 +30,16 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashO implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashO implements FCDotCLKSourceCakePoints { + OR(FCDotCLKSource.APL_DYADIC, + FCDotCLKSource.VHDL, + FCDotCLKSource.CPP, + FCDotCLKSource.ERLANG, + FCDotCLKSource.PYTHON), OF(FCDotCLKSource.VHDL, FCDotCLKSource.ERLANG), ON(FCDotCLKSource.VHDL), OPEN(FCDotCLKSource.VHDL), - OR(FCDotCLKSource.VHDL, FCDotCLKSource.CPP, FCDotCLKSource.ERLANG, FCDotCLKSource.PYTHON), OTHERS(FCDotCLKSource.VHDL), OUT(FCDotCLKSource.VHDL), OPERATOR(FCDotCLKSource.CPP), @@ -56,7 +60,7 @@ public enum FCDotCLK9PDashO implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_O.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_O.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashP.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashP.java index f3242ba..0934dde 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashP.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashP.java @@ -30,8 +30,10 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashP implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashP implements FCDotCLKSourceCakePoints { + PLUS(FCDotCLKSource.APL_DYADIC), + POWER(FCDotCLKSource.APL_DYADIC), PACKAGE(FCDotCLKSource.VHDL, FCDotCLKSource.JAVA, FCDotCLKSource.ES6), PORT(FCDotCLKSource.VHDL), POSTPONED(FCDotCLKSource.VHDL), @@ -56,7 +58,7 @@ public enum FCDotCLK9PDashP implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_P.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_P.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashQ.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashQ.java index e25f2dc..2073c97 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashQ.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashQ.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashQ implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashQ implements FCDotCLKSourceCakePoints { ; @@ -46,7 +46,7 @@ public enum FCDotCLK9PDashQ implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_Q.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_Q.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashR.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashR.java index d0e1e0b..29c38b5 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashR.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashR.java @@ -30,13 +30,14 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashR implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashR implements FCDotCLKSourceCakePoints { + RESIDUE(FCDotCLKSource.APL_DYADIC), RANGE(FCDotCLKSource.VHDL), RECORD(FCDotCLKSource.VHDL), REGISTER(FCDotCLKSource.VHDL, FCDotCLKSource.CPP), REJECT(FCDotCLKSource.VHDL), - REM(FCDotCLKSource.VHDL, FCDotCLKSource.ERLANG), + REMARK(FCDotCLKSource.VHDL.toQNameAlias("rem"), FCDotCLKSource.ERLANG.toQNameAlias("rem")), REPORT(FCDotCLKSource.VHDL), RETURN(FCDotCLKSource.VHDL, FCDotCLKSource.CPP, @@ -66,7 +67,7 @@ public enum FCDotCLK9PDashR implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_R.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_R.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashS.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashS.java index d7e40c7..c2174de 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashS.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashS.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashS implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashS implements FCDotCLKSourceCakePoints { SELECT(FCDotCLKSource.VHDL), SEVERITY(FCDotCLKSource.VHDL), @@ -71,7 +71,7 @@ public enum FCDotCLK9PDashS implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_S.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_S.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashT.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashT.java index e0eed6e..2760d06 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashT.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashT.java @@ -30,8 +30,9 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashT implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashT implements FCDotCLKSourceCakePoints { + TIMES(FCDotCLKSource.APL_DYADIC), THEN(FCDotCLKSource.VHDL), TO(FCDotCLKSource.VHDL), TRANSPORT(FCDotCLKSource.VHDL), @@ -72,7 +73,7 @@ public enum FCDotCLK9PDashT implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_T.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_T.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashU.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashU.java index 97f1681..a4bb5db 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashU.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashU.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashU implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashU implements FCDotCLKSourceCakePoints { UNAFFECTED(FCDotCLKSource.VHDL), UNITS(FCDotCLKSource.VHDL), @@ -55,7 +55,7 @@ public enum FCDotCLK9PDashU implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_U.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_U.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashV.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashV.java index 7abbb0e..10d3f81 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashV.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashV.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashV implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashV implements FCDotCLKSourceCakePoints { VARIABLE(FCDotCLKSource.VHDL), VIRTUAL(FCDotCLKSource.CPP, FCDotCLKSource.RUST), @@ -51,7 +51,7 @@ public enum FCDotCLK9PDashV implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_V.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_V.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashW.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashW.java index 24daa40..b82d114 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashW.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashW.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashW implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashW implements FCDotCLKSourceCakePoints { WAIT(FCDotCLKSource.VHDL), WHEN(FCDotCLKSource.VHDL, FCDotCLKSource.ERLANG), @@ -57,7 +57,7 @@ public enum FCDotCLK9PDashW implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_W.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_W.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashX.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashX.java index 6c219ff..725d3de 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashX.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashX.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashX implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashX implements FCDotCLKSourceCakePoints { XNOR(FCDotCLKSource.VHDL), XOR(FCDotCLKSource.VHDL, FCDotCLKSource.CPP, FCDotCLKSource.ERLANG), @@ -49,7 +49,7 @@ public enum FCDotCLK9PDashX implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_X.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_X.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashY.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashY.java index 03ee098..7af780a 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashY.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashY.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashY implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashY implements FCDotCLKSourceCakePoints { YIELD(FCDotCLKSource.RUST, FCDotCLKSource.PYTHON, FCDotCLKSource.ES6), ; @@ -47,7 +47,7 @@ public enum FCDotCLK9PDashY implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_Y.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_Y.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashZ.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashZ.java index 2f2e1f2..0513e99 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashZ.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLK9PDashZ.java @@ -30,7 +30,7 @@ import org.x4o.o2o.fc18.FourCornerDotCake; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotCLK9PDashZ implements FCDotCLKSourceCakePoint { +public enum FCDotCLK9PDashZ implements FCDotCLKSourceCakePoints { ; @@ -46,7 +46,7 @@ public enum FCDotCLK9PDashZ implements FCDotCLKSourceCakePoint { } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CLK9P_Z.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CLK9P_Z.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSource.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSource.java index 71e54e6..605fcd3 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSource.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSource.java @@ -32,6 +32,10 @@ import java.util.Objects; */ public enum FCDotCLKSource implements FCDotCLKSourceLookup { + APL_DYADIC, + APL_MONADIC, + APL_CIRCLE, + APL_CMD, VHDL, CPP, JAVA, @@ -39,10 +43,6 @@ public enum FCDotCLKSource implements FCDotCLKSourceLookup { RUST, PYTHON, ES6, - //APL_DYADIC - //APL_MONADIC - //APL_CIRCLE - //APL_CMD //BASIC, //BASIC_MSX, // = disk-basic + msx stuff //BASIC_MPI, // MPI-2 for BASIC diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoints.java similarity index 93% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoint.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoints.java index fbd8ac9..90821fc 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoint.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoints.java @@ -24,7 +24,7 @@ package org.x4o.o2o.fc18.clk9p; import java.util.Optional; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * Adds CLK source lookup support to an cake point. @@ -33,7 +33,7 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public interface FCDotCLKSourceCakePoint extends FourCornerX18CakePoint { +public interface FCDotCLKSourceCakePoints extends FourCornerX18CakePoints { FCDotCLKSourceLookup[] getLookups(); 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 new file mode 100644 index 0000000..2eaf900 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash01.java @@ -0,0 +1,67 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_01. + * + * @author Willem Cazander + * @version 1.0 Jan 05, 2025 + */ +public enum FCDotPIE9CDash01 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('〇'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash01(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_01.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..f062ac8 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash02.java @@ -0,0 +1,68 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_02. + * + * @author Willem Cazander + * @version 1.0 Jan 05, 2025 + */ +public enum FCDotPIE9CDash02 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('∈'), + NXX_02('∋'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash02(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX02_B.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_02.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..49a96e0 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash03.java @@ -0,0 +1,69 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_03. + * + * @author Willem Cazander + * @version 1.0 Jan 05, 2025 + */ +public enum FCDotPIE9CDash03 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('一'), + NXX_02('二'), + NXX_03('三'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash03(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX03_C.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_03.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..44c27ff --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash04.java @@ -0,0 +1,70 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_04. + * + * @author Willem Cazander + * @version 1.0 Jan 05, 2025 + */ +public enum FCDotPIE9CDash04 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('↑'), + NXX_02('→'), + NXX_03('↓'), + NXX_04('←'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash04(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX04_D.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_04.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..704a193 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash05.java @@ -0,0 +1,71 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_05. + * + * @author Willem Cazander + * @version 1.0 Jan 05, 2025 + */ +public enum FCDotPIE9CDash05 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('˥'), + NXX_02('˦'), + NXX_03('˧'), + NXX_04('˨'), + NXX_05('˩'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash05(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX05_E.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_05.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..1983d0e --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash06.java @@ -0,0 +1,72 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_06. + * + * @author Willem Cazander + * @version 1.0 Jan 05, 2025 + */ +public enum FCDotPIE9CDash06 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('∪'), + NXX_02('∩'), + NXX_03('⊆'), + NXX_04('⊇'), + NXX_05('⊂'), + NXX_06('⊃'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash06(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX06_F.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_06.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..a409e95 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash07.java @@ -0,0 +1,73 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_07. + * + * @author Willem Cazander + * @version 1.0 Jan 05, 2025 + */ +public enum FCDotPIE9CDash07 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('∧'), + NXX_02('∨'), + NXX_03('¬' /*'¬'*/), // order and chars are from kanji table 2 + NXX_04('⇒'), + NXX_05('⇔'), + NXX_06('∀'), + NXX_07('∃'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash07(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX07_G.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_07.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..9b3b3fc --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash08.java @@ -0,0 +1,74 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_08. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash08 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('☰'), + NXX_02('☱'), + NXX_03('☲'), + NXX_04('☳'), + NXX_05('☴'), + NXX_06('☵'), + NXX_07('☶'), + NXX_08('☷'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash08(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX08_H.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_08.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..19cf081 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash09.java @@ -0,0 +1,75 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_09. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash09 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01(' '), + NXX_02(' '), + NXX_03(' '), + NXX_04(' '), + NXX_05(' '), + NXX_06(' '), + NXX_07(' '), + NXX_08(' '), + NXX_09(' '), + ; + private final int[] codePoints; + + private FCDotPIE9CDash09(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX09_I.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_09.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..815aab7 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash10.java @@ -0,0 +1,76 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_10. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash10 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('0'), + NXX_02('1'), + NXX_03('2'), + NXX_04('3'), + NXX_05('4'), + NXX_06('5'), + NXX_07('6'), + NXX_08('7'), + NXX_09('8'), + NXX_10('9'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash10(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX10_J.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_10.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..6bc467a --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash11.java @@ -0,0 +1,77 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_11. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash11 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('*'), + NXX_02('⁺'), + NXX_03('⁻'), + NXX_04('⁽'), + NXX_05('⁾'), + NXX_06('⁼'), + NXX_07('₊'), + NXX_08('₋'), + NXX_09('₍'), + NXX_10('₎'), + NXX_11('₌'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash11(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX11_K.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_11.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..83fc0f6 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash12.java @@ -0,0 +1,78 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_12. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash12 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01(' '), + NXX_02(' '), + NXX_03(' '), + NXX_04(' '), + NXX_05(' '), + NXX_06(' '), + NXX_07(' '), + NXX_08(' '), + NXX_09(' '), + NXX_10(' '), + NXX_11(' '), + NXX_12(' '), + ; + private final int[] codePoints; + + private FCDotPIE9CDash12(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX12_L.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_12.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..c9ff501 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash13.java @@ -0,0 +1,79 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_13. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash13 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01(' '), + NXX_02(' '), + NXX_03(' '), + NXX_04(' '), + NXX_05(' '), + NXX_06(' '), + NXX_07(' '), + NXX_08(' '), + NXX_09(' '), + NXX_10(' '), + NXX_11(' '), + NXX_12(' '), + NXX_13(' '), + ; + private final int[] codePoints; + + private FCDotPIE9CDash13(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX13_M.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_13.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..ddf70d7 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash14.java @@ -0,0 +1,80 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_14. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash14 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('⊢'), + NXX_02('⊣'), + NXX_03('⊤'), + NXX_04('⊥'), + NXX_05('⊦'), + NXX_06('⊧'), + NXX_07('⊨'), + NXX_08('⊩'), + NXX_09('⊪'), + NXX_10('⊫'), + NXX_11('⊬'), + NXX_12('⊭'), + NXX_13('⊮'), + NXX_14('⊯'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash14(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX14_N.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_14.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..523e744 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash15.java @@ -0,0 +1,81 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_15. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash15 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('꜍'), + NXX_02('꜎'), + NXX_03('꜏'), + NXX_04('꜐'), + NXX_05('꜑'), + NXX_06('꜈'), + NXX_07('꜉'), + NXX_08('꜊'), + NXX_09('꜋'), + NXX_10('꜌'), + NXX_11('꜒'), + NXX_12('꜓'), + NXX_13('꜔'), + NXX_14('꜕'), + NXX_15('꜖'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash15(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX15_O.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_15.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..74048d6 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash16.java @@ -0,0 +1,82 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_16. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash16 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('˧','˥','˩'), + NXX_02('˧','˩','˥'), + NXX_03('˧','˥','˦'), + NXX_04('˧','˩','˨'), + NXX_05('˧','˦','˦'), + NXX_06('˧','˨','˨'), + NXX_07('˧','˥','˥'), + NXX_08('˧','˩','˩'), + NXX_09('˥','˩','˧'), + NXX_10('˩','˥','˧'), + NXX_11('˥','˦','˧'), + NXX_12('˩','˨','˧'), + NXX_13('˦','˦','˧'), + NXX_14('˨','˨','˧'), + NXX_15('˥','˥','˧'), + NXX_16('˩','˩','˧'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash16(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX16_P.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_16.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..c8463fc --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash17.java @@ -0,0 +1,83 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_17. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash17 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01(' '), + NXX_02(' '), + NXX_03(' '), + NXX_04(' '), + NXX_05(' '), + NXX_06(' '), + NXX_07(' '), + NXX_08(' '), + NXX_09(' '), + NXX_10(' '), + NXX_11(' '), + NXX_12(' '), + NXX_13(' '), + NXX_14(' '), + NXX_15(' '), + NXX_16(' '), + NXX_17(' '), + ; + private final int[] codePoints; + + private FCDotPIE9CDash17(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX17_Q.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_17.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..f0ce555 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash18.java @@ -0,0 +1,84 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_18. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash18 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01(0x1D360), + NXX_02(0x1D361), + NXX_03(0x1D362), + NXX_04(0x1D363), + NXX_05(0x1D364), + NXX_06(0x1D365), + NXX_07(0x1D366), + NXX_08(0x1D367), + NXX_09(0x1D368), + NXX_10(0x1D360, '\u20E5'), + NXX_11(0x1D361, '\u20E5'), + NXX_12(0x1D362, '\u20E5'), + NXX_13(0x1D363, '\u20E5'), + NXX_14(0x1D364, '\u20E5'), + NXX_15(0x1D365, '\u20E5'), + NXX_16(0x1D366, '\u20E5'), + NXX_17(0x1D367, '\u20E5'), + NXX_18(0x1D368, '\u20E5'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash18(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX18_R.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_18.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..99475b6 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash19.java @@ -0,0 +1,85 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_19. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash19 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01(' '), + NXX_02(' '), + NXX_03(' '), + NXX_04(' '), + NXX_05(' '), + NXX_06(' '), + NXX_07(' '), + NXX_08(' '), + NXX_09(' '), + NXX_10(' '), + NXX_11(' '), + NXX_12(' '), + NXX_13(' '), + NXX_14(' '), + NXX_15(' '), + NXX_16(' '), + NXX_17(' '), + NXX_18(' '), + NXX_19(' '), + ; + private final int[] codePoints; + + private FCDotPIE9CDash19(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX19_S.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_19.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..fa11494 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash20.java @@ -0,0 +1,110 @@ +/* + * 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.pie9c; + +import java.util.ArrayList; +import java.util.List; +import java.util.PrimitiveIterator; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_20. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash20 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + SUPER_0('⁰'), + SUPER_1('¹'), + SUPER_2('²'), + SUPER_3('³'), + SUPER_4('⁴'), + SUPER_5('⁵'), + SUPER_6('⁶'), + SUPER_7('⁷'), + SUPER_8('⁸'), + SUPER_9('⁹'), + SUB_0('₀'), + SUB_1('₁'), + SUB_2('₂'), + SUB_3('₃'), + SUB_4('₄'), + SUB_5('₅'), + SUB_6('₆'), + SUB_7('₇'), + SUB_8('₈'), + SUB_9('₉'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash20(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX20_T.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_20.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } + + static public List toScriptSuper(int value) { + return toScript(value, 0); + } + + static public List toScriptSub(int value) { + return toScript(value, 10); + } + + static private List toScript(int value, int off) { + List result = new ArrayList<>(); + String valueStr = Integer.toString(value); + PrimitiveIterator.OfInt i = valueStr.codePoints().iterator(); + while (i.hasNext()) { + int chr = i.nextInt(); + int num = chr - '0'; + result.add(values()[num + off]); + } + return result; + } +} 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 new file mode 100644 index 0000000..a688ff2 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash21.java @@ -0,0 +1,87 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_21. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash21 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01('Ⅰ'), + NXX_02('Ⅱ'), + NXX_03('Ⅲ'), + NXX_04('Ⅳ'), + NXX_05('Ⅴ'), + NXX_06('Ⅵ'), + NXX_07('Ⅶ'), + NXX_08('Ⅷ'), + NXX_09('Ⅸ'), + NXX_10('Ⅹ'), + NXX_11('Ⅺ'), + NXX_12('Ⅻ'), + NXX_13('Ⅼ'), + NXX_14('Ⅽ'), + NXX_15('Ⅾ'), + NXX_16('Ⅿ'), + NXX_17('ↀ'), + NXX_18('ↁ'), + NXX_19('ↂ'), + NXX_20('ↇ'), + NXX_21('ↈ'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash21(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX21_U.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_21.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..1ff93d6 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash22.java @@ -0,0 +1,88 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_22. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash22 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01(0x10900), + NXX_02(0x10901), + NXX_03(0x10902), + NXX_04(0x10903), + NXX_05(0x10904), + NXX_06(0x10905), + NXX_07(0x10906), + NXX_08(0x10907), + NXX_09(0x10908), + NXX_10(0x10909), + NXX_11(0x1090A), + NXX_12(0x1090B), + NXX_13(0x1090C), + NXX_14(0x1090D), + NXX_15(0x1090E), + NXX_16(0x1090F), + NXX_17(0x10910), + NXX_18(0x10911), + NXX_19(0x10912), + NXX_20(0x10913), + NXX_21(0x10914), + NXX_22(0x10915), // Tau + ; + private final int[] codePoints; + + private FCDotPIE9CDash22(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX22_V.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_22.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..54e4c4b --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash23.java @@ -0,0 +1,89 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_23. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash23 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01(0x1D369), + NXX_02(0x1D36A), + NXX_03(0x1D36B), + NXX_04(0x1D36C), + NXX_05(0x1D36D), + NXX_06(0x1D36E), + NXX_07(0x1D36F), + NXX_08(0x1D370), + NXX_09(0x1D371), + NXX_10(0x1D369, '\u20E5'), + NXX_11(0x1D36A, '\u20E5'), + NXX_12(0x1D36B, '\u20E5'), + NXX_13(0x1D36C, '\u20E5'), + NXX_14(0x1D36D, '\u20E5'), + NXX_15(0x1D36E, '\u20E5'), + NXX_16(0x1D36F, '\u20E5'), + NXX_17(0x1D370, '\u20E5'), + NXX_18(0x1D371, '\u20E5'), + NXX_19(0x1D372), + NXX_20(0x1D373), + NXX_21(0x1D374), + NXX_22(0x1D375), + NXX_23(0x1D376), + ; + private final int[] codePoints; + + private FCDotPIE9CDash23(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX23_W.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_23.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..76bf6d2 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash24.java @@ -0,0 +1,90 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_24. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash24 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + NXX_01(' '), + NXX_02(' '), + NXX_03(' '), + NXX_04(' '), + NXX_05(' '), + NXX_06(' '), + NXX_07(' '), + NXX_08(' '), + NXX_09(' '), + NXX_10(' '), + NXX_11(' '), + NXX_12(' '), + NXX_13(' '), + NXX_14(' '), + NXX_15(' '), + NXX_16(' '), + NXX_17(' '), + NXX_18(' '), + NXX_19(' '), + NXX_20(' '), + NXX_21(' '), + NXX_22(' '), + NXX_23(' '), + NXX_24(' '), + ; + private final int[] codePoints; + + private FCDotPIE9CDash24(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX24_X.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_24.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..40eda7b --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash25.java @@ -0,0 +1,91 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_25. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash25 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + UBAR_0('0', '\u0332'), + UBAR_1('1', '\u0332'), + UBAR_2('2', '\u0332'), + UBAR_3('3', '\u0332'), + UBAR_4('4', '\u0332'), + UBAR_5('5', '\u0332'), + UBAR_6('6', '\u0332'), + UBAR_7('7', '\u0332'), + UBAR_8('8', '\u0332'), + UBAR_9('9', '\u0332'), + NEG_0('0', '\u0337'), + NEG_1('1', '\u0337'), + NEG_2('2', '\u0337'), + NEG_3('3', '\u0337'), + NEG_4('4', '\u0337'), + NEG_5('5', '\u0337'), + NEG_6('6', '\u0337'), + NEG_7('7', '\u0337'), + NEG_8('8', '\u0337'), + NEG_9('9', '\u0337'), + NXX_21('⋈'), + NXX_22('⋉'), + NXX_23('⋊'), + NXX_24('⋋'), + NXX_25('⋌'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash25(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX25_Y.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_25.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..1ff61b5 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash26.java @@ -0,0 +1,92 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_26. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash26 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + LOW_A('a'), + LOW_B('b'), + LOW_C('c'), + LOW_D('d'), + LOW_E('e'), + LOW_F('f'), + LOW_G('g'), + LOW_H('h'), + LOW_I('i'), + LOW_J('j'), + LOW_K('k'), + LOW_L('l'), + LOW_M('m'), + LOW_N('n'), + LOW_O('o'), + LOW_P('p'), + LOW_Q('q'), + LOW_R('r'), + LOW_S('s'), + LOW_T('t'), + LOW_U('u'), + LOW_V('v'), + LOW_W('w'), + LOW_X('x'), + LOW_Y('y'), + LOW_Z('z'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash26(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX26_Z.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_26.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} 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 new file mode 100644 index 0000000..4709d8b --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/FCDotPIE9CDash27.java @@ -0,0 +1,93 @@ +/* + * 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.pie9c; + +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; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Pie slice number symbols for NXX_27. + * + * @author Willem Cazander + * @version 1.0 Jan 06, 2025 + */ +public enum FCDotPIE9CDash27 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + + LOWUBAR_A('a', '\u0332'), + LOWUBAR_B('b', '\u0332'), + LOWUBAR_C('c', '\u0332'), + LOWUBAR_D('d', '\u0332'), + LOWUBAR_E('e', '\u0332'), + LOWUBAR_F('f', '\u0332'), + LOWUBAR_G('g', '\u0332'), + LOWUBAR_H('h', '\u0332'), + LOWUBAR_I('i', '\u0332'), + LOWUBAR_J('j', '\u0332'), + LOWUBAR_K('k', '\u0332'), + LOWUBAR_L('l', '\u0332'), + LOWUBAR_M('m', '\u0332'), + LOWUBAR_N('n', '\u0332'), + LOWUBAR_O('o', '\u0332'), + LOWUBAR_P('p', '\u0332'), + LOWUBAR_Q('q', '\u0332'), + LOWUBAR_R('r', '\u0332'), + LOWUBAR_S('s', '\u0332'), + LOWUBAR_T('t', '\u0332'), + LOWUBAR_U('u', '\u0332'), + LOWUBAR_V('v', '\u0332'), + LOWUBAR_W('w', '\u0332'), + LOWUBAR_X('x', '\u0332'), + LOWUBAR_Y('y', '\u0332'), + LOWUBAR_Z('z', '\u0332'), + LOWUBAR_AMP('&', '\u0332'), + ; + private final int[] codePoints; + + private FCDotPIE9CDash27(int...codePoints) { + this.codePoints = codePoints; + } + + @Override + public int[] baklavaPoints() { + return muffinPoints(); + } + + @Override + public int[] muffinPoints() { + return new int[] {FCDotCDC1604DashP6.__PIE.ordinal(), FCDotCDC1604DashP6.NX27_AMPERSAND.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()}; + } + + @Override + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_PIE9C_27.getStart() + ordinal()}; + } + + @Override + public int[] codePoints() { + return codePoints; + } +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/package-info.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/package-info.java new file mode 100644 index 0000000..691af8e --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/pie9c/package-info.java @@ -0,0 +1,30 @@ +/* + * 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. + */ + +/** + * 18 bit Four Corner Pie number symbols three times nine. + * + * + * @since 1.0 + */ +package org.x4o.o2o.fc18.pie9c; diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashA4.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashDA.java similarity index 85% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashA4.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashDA.java index d208d81..ffba1aa 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashA4.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashDA.java @@ -23,16 +23,16 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** - * "FC.AMD0110-A4" Four Corner Application Methodoums Decimals + * "FC.AMD0110-DA" Four Corner Application Methodoums Decimals * * * @author Willem Cazander * @version 1.0 Dec 31, 2024 */ -public enum FCDotAMD0110DashA4 implements FourCornerX18CakePoint { +public enum FCDotAMD0110DashDA implements FourCornerX18CakePoints { /// Shorthand for zero T001_NXX_001, /// Shorthand for one @@ -48,7 +48,7 @@ public enum FCDotAMD0110DashA4 implements FourCornerX18CakePoint { ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_AMD0110_A4.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_AMD0110_DA.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6.java index db3bc8e..96877a1 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6.java @@ -23,211 +23,224 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX06BaklavaPoint; -import org.x4o.o2o.fc18.FourCornerX08MuffinPoint; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; -import org.x4o.o2o.fc18.FourCornerX21CodePoint; +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.APL1604-S6" Four Corner A Programming Language symbols cake slice of cake points. /// /// @author Willem Cazander /// @version 1.0 Jan 1, 2025 /// -public enum FCDotAPL1604DashS6 implements FourCornerX06BaklavaPoint, FourCornerX08MuffinPoint, FourCornerX18CakePoint, FourCornerX21CodePoint { +public enum FCDotAPL1604DashS6 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'), - // see https://en.wikipedia.org/wiki/Digital_encoding_of_APL_symbols - - // TODO: repack, move DEC._LL to here and add compound to make space for more letters - // GNU APL has the letter ⍨ = APL Functional Symbol Tilde Diaeresis. - // Thus remove all compound letters like in ISO-IR-68 - - /// SL010000 - UP_STILE('⌈'), - /// SL020000 - DOWN_STILE('⌊'), - /// SL030000 - DEL('∇'), - /// SL040000 - DEL_TILDE('⍫'), - /// SL050000 - DEL_STILE('⍒'), - /// SL060000 - DELTA('∆'), - /// SL070000 - DELTA_STILE('⍋'), - /// SL080000 + /// SL080000 One is pi CIRCLE('○'), - /// SL090000 - CIRCLE_STILE('⌽'), - /// SL100000 - CIRCLE_SLOPE('⍉'), - /// SL110000 - CIRCLE_STAR('⍟'), - /// SL120000 - CIRCLE_BAR('⊖'), - /// SL130000 - QUAD_QUOTE('⍞'), + + // === 2 + 6 boxes + + /// SL360000 + QUAD('⎕'), + /// SL260000 + SQUISH_QUAD('⌷'), /// SL140000 QUAD_DIVIDE('⌹'), - /// SL150000 - SLASH_BAR('⌿'), - /// SL160000 - SLOPE_BAR('⍀'), - /// SL170000 - UP_CARET_TILDE('⍲'), - /// SL180000 - DOWN_CARET_TILDE('⍱'), + /// 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('⍕'), - /// SL210000 - UP_SHOE_NULL('⍝'), - /// SL220000 - UP_TACK('⊤'), - /// SL230000 - DOWN_TACK('⊥'), - /// SL240000 - IBEAM_TACK('⌶'), + /// 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 + CIRLCE_DOT('⍤'), /// SL250000 JOT('∘'), - /// SL260000 - SQUISH_QUAD('⌷'), - /// SL270000 - QUAD_JOT('⌻'), - /// SL280000 - QUAD_SLOPE('⍂'), + /// NEW from dynlog APL + STAR_DOT('⍣'), - // SL290000 = Ampersand Underbar is on 6 bit = FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_LL + FCDotCDC1604DashP6.NX27_AMPERSAND - // SL300000 = Equals underbar is on 6 bit = FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_LL + FCDotCDC1604DashP6._EQUALS - // SL310000 = OUT Symbol = Not used by IBM ? + // === ALGOL_60 ::= + | - | × | / | ÷ | ↑ - /// SL320000 - DIAERESIS_DOT('∵'), - - // SL330000 = Delta underbar is on 6 bit = FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_LL + FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_APL + FCDotAPL1604DashS6.DELTA - - /// SL340000 - LEFT_TACK('⊢'), - /// SL350000 - RIGHT_TACK('⊣'), - /// SL360000 - QUAD('⎕'), - /// SL370000 - LESS_GREATER('⋄'), - - // SL380000 = Stile = FCDotCDC1604DashP6.BAR_VERTICAL - // SL390000 = undefined - - /// SL400000 - UP_SHOE('∩'), - /// SL410000 - DOWN_SHOE('∪'), - /// SL420000 - LEFT_SHOE('⊂'), - /// SL430000 - RIGHT_SHOE('⊃'), - - // SL440000 = Underbar = FCDotCDC1604DashP6.BAR_UNDER - - /// SL450000 - DIAERESIS('¨'), - - // SL460000 = Tilde = FCDotCDC1604DashP6._TILDE - // SL470000 = undefined - - /// SL480000 - CIRCLE_PLUS('⊕'), - /// SL490000 - CIRCLE_TIMES('⊗'), - /// SL500000 - DOWN_CARET('∨'), - /// SL510000 - UP_CARET('∧'), - - // SL520000 = Less than = FCDotCDC1604DashP6.TAG_COMPARE_LEFT - // SL530000 = Greater than = FCDotCDC1604DashP6.TAG_COMPARE_RIGHT - - /// SL540000 - DIVIDE('÷'), + // SL790000 = Plus = FCDotCDC1604DashP6._PLUS + // SL690000 = Bar = FCDotCDC1604DashP6._MINUS /// SL550000 TIMES('×'), + // SL760000 = Slash = FCDotCDC1604DashP6.BAR_V_RIGHT + /// SL540000 + DIVIDE('÷'), + + // === ALGOL_60 ::= <, ≤, =, ≥, >, ≠ + + // SL520000 = Less than = FCDotCDC1604DashP6.TAG_COMPARE_LEFT /// SL560000 NOT_GREATER('≤'), + // SL810000 = Equal = FCDotCDC1604DashP6._EQUALS /// SL570000 NOT_LESS('≥'), + // SL530000 = Greater than = FCDotCDC1604DashP6.TAG_COMPARE_RIGHT + /// SL820000 + NOT_EQUAL('≠'), + /// SL050000 + DEL_STILE('⍒'), // grade down + /// SL070000 + DELTA_STILE('⍋'), - // SL580000 = Quote Dot = FCDotCDC1604DashP6._EXCLAMATION + // === ALGOL_60 ::= ≡ | ⊃ | ∧ | ∨ | ¬ - /// SL590000 - LEFT_ARROW('←'), - /// SL600000 - RIGHT_ARROW('→'), - /// SL610000 - UP_ARROW('↑'), - /// SL620000 - DOWN_ARROW('↓'), + /// SL300000 + EQUALS_UNDERBAR('≡'), + /// SL430000 + RIGHT_SHOE('⊃'), + /// SL510000 + UP_CARET('∧'), + /// SL500000 + DOWN_CARET('∨'), + /// NEW: This comes from ALGOL_60 chars. + ALGOL_NOT('¬'), + /// SL170000 + UP_CARET_TILDE('⍲'), // NAND + /// SL180000 + DOWN_CARET_TILDE('⍱'), + /// NEW: from Dynalog_APL + EQUALS_UNDERNOT('≢'), - /// SL630000 - OVERBAR('‾'), + /// === Left over from modern APL for Zilog Z8000 see https://aplwiki.com/wiki/Dyalog_APL - // SL640000 = Slope = FCDotCDC1604DashP6.BAR_V_LEFT - // SL650000 = Star = FCDotCDC1604DashP6._ASTERISK - // SL660000 = Quota = FCDotCDC1604DashP6._APOSTROPHE - // SL670000 = Left Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_LEFT - // SL680000 = Right Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_RIGHT - // SL690000 = Bar = FCDotCDC1604DashP6._MINUS - // SL700000 = Query = FCDotCDC1604DashP6._QUESTION - - /// SL710000 - ALPHA('⍺'), - /// SL720000 - EPSILON('∊'), + /// SL240000 + IBEAM_TACK('⌶'), + /// NEW from DYNA + DOTTED_TILDE('⍨'), + /// SL450000 + DIAERESIS('¨'), + // SL870000 + EPSILON_UNDERBAR('⍷'), + // SL860000 = Iota Underbar + IOTA_UNDERBAR('⍸'), /// SL730000 IOTA('⍳'), + /// SL410000 + 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('⍵'), - // SL760000 = Slash = FCDotCDC1604DashP6.BAR_V_RIGHT + + /// 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 - // SL790000 = Plus = FCDotCDC1604DashP6._PLUS // SL800000 = Semicolon = FCDotCDC1604DashP6._SEMICOLON - // SL810000 = Equal = FCDotCDC1604DashP6._EQUALS - - /// SL820000 - NOT_EQUAL('≠'), - // SL830000 = Colon = FCDotCDC1604DashP6._COLON // SL840000 = Dot = FCDotCDC1604DashP6._DOT // SL850000 = Comma = FCDotCDC1604DashP6._COMMA - // SL860000 = Iota Underbar - // SL870000 = Epsilon Underbar - // On 6 bit: - // FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_LL + FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_APL + FCDotAPL1604DashS6.EPSILON - // On 8 or 18 bit: - // FCDotDEC1604DashE6.__ESC_LL + FCDotAPL1604DashS6.EPSILON - - // ----------- END APL - - /// Lambda symbol - LAMBDA('λ'), // Greek Capital Letter Lambda - /// Phi symbol - PHI('Φ'), // Greek Capital Letter Phi - /// A Euler's Number symbol - AEN('ӕ'), // Cyrillic Small Ligature A Ie - /// One pi has symbol of 2T - PI_1('π'), // Greek Small Letter Pi - /// Two pi has symbol of 1T - PI_2('τ'), // Greek Capital Letter Tau - /// Three pi has symbol of 3T - PI_3('Ѧ'), // Cyrillic Capital Letter Little Yus ; static final private FCDotAPL1604DashS6[] VALUES = values(); // values() is slow method @@ -238,23 +251,23 @@ public enum FCDotAPL1604DashS6 implements FourCornerX06BaklavaPoint, FourCornerX } @Override - public int baklavaPoint() { - return ordinal(); + public int[] baklavaPoints() { + return new int[] {FCDotCDC1604DashP6.__ESC6.ordinal(), FCDotDEC1604DashE6.__ESC6_APL.ordinal(), ordinal()}; } @Override - public int muffinPoint() { - return cakePoint(); + public int[] muffinPoints() { + return cakePoints(); } @Override - public int cakePoint() { - return FourCornerDotCake.FC_APL1604_S6.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_APL1604_S6.getStart() + ordinal()}; } @Override - public int codePoint() { - return codePoint; + public int[] codePoints() { + return new int[] {codePoint}; } static public int length() { diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBMW0102DashD1.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBMW0102DashD1.java index 89c4bb1..07b1eb2 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBMW0102DashD1.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBMW0102DashD1.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.BMW0102-D1" Four Corner Binary Model Word encoding. @@ -31,13 +31,13 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 31, 2024 */ -public enum FCDotBMW0102DashD1 implements FourCornerX18CakePoint { +public enum FCDotBMW0102DashD1 implements FourCornerX18CakePoints { T002_NXX_001, T002_NXX_002, ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_BMW0102_D1.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_BMW0102_D1.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6.java index 734745d..5f46392 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6.java @@ -23,17 +23,17 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX06BaklavaPoint; -import org.x4o.o2o.fc18.FourCornerX08MuffinPoint; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; -import org.x4o.o2o.fc18.FourCornerX21CodePoint; +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.BYD1604-C6" Four Corner Block Your Display terminal application. /// /// @author Willem Cazander /// @version 1.0 Jan 1, 2025 /// -public enum FCDotBYD1604DashC6 implements FourCornerX06BaklavaPoint, FourCornerX08MuffinPoint, FourCornerX18CakePoint, FourCornerX21CodePoint { +public enum FCDotBYD1604DashC6 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'), @@ -119,23 +119,23 @@ public enum FCDotBYD1604DashC6 implements FourCornerX06BaklavaPoint, FourCornerX } @Override - public int baklavaPoint() { - return ordinal(); + public int[] baklavaPoints() { + return new int[] {FCDotCDC1604DashP6.__ESC6.ordinal(), FCDotDEC1604DashE6.__ESC6_BYD.ordinal(), ordinal()}; } @Override - public int muffinPoint() { - return cakePoint(); + public int[] muffinPoints() { + return cakePoints(); } @Override - public int cakePoint() { - return FourCornerDotCake.FC_BYD1604_C6.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_BYD1604_C6.getStart() + ordinal()}; } @Override - public int codePoint() { - return codePoint; + public int[] codePoints() { + return new int[] {codePoint}; } static public int length() { 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 c750ed5..ba1c1ba 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 @@ -23,10 +23,10 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX06BaklavaPoint; -import org.x4o.o2o.fc18.FourCornerX08MuffinPoint; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; -import org.x4o.o2o.fc18.FourCornerX21CodePoint; +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.CDC1604-P6" Four Corner Core Data Cake has 27 pie slice number systems "Packed" for MATH and BASIC letters. @@ -41,38 +41,37 @@ import org.x4o.o2o.fc18.FourCornerX21CodePoint; /// @author Willem Cazander /// @version 1.0 Dec 22, 2024 /// -public enum FCDotCDC1604DashP6 implements FourCornerX06BaklavaPoint, FourCornerX08MuffinPoint, FourCornerX18CakePoint, FourCornerX21CodePoint { - // [__NUL][__PIE][__GLUE][__ESC] [__LINE][__SPACE]?! {[(< }])> +public enum FCDotCDC1604DashP6 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints { + // [__NUL][__PIE][__GLUE][__ESC] [__LINE][__SPACE]?! {}[] ()<> // ~+-* ,.:; '"`^ =#$% // |_\/ @ABC DEFG HIJK // 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 number encoding. + /// Select packed pie terminator symbol. /// 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 /// 0 = __PIE NX01_A NX01_A (__PIE T001 PART_1) /// 12 = __PIE NX09_I NX01_A NX02_B (__PIE T009 PART_1+2) __PIE('\u0001'), - /// Word glue to flag for automatic casing and/or separator in renderer.(by user-pref per context) - /// The example "__SPACE __GLUE NX06_F NX15_O NX15_O __GLUE NX02_B NX01_A NX18_R" - /// Can be rendered as " FooᐧBar" or " fOObAR" or " FOO_BAR" etc/etc. - __GLUE('\u0002'), - /// Escape to direct control code. (note only needed for 6 bit and 8 bit systems) - __ESC('\u0003'), + /// Select packed pie terminator number. + /// First NXX P6 is terminator select, than next NXX P6 are values, until out of range. + __PIN('\u0002'), + /// Escape to direct control code for 6 bit systems. + __ESC6('\u0003'), __LINE('\n'), __SPACE(' '), _QUESTION('?'), _EXCLAMATION('!'), TAG_CURLY_LEFT('{'), - TAG_SQUARE_LEFT('['), - TAG_ROUND_LEFT('('), - TAG_COMPARE_LEFT('<'), TAG_CURLY_RIGHT('}'), + TAG_SQUARE_LEFT('['), TAG_SQUARE_RIGHT(']'), + TAG_ROUND_LEFT('('), TAG_ROUND_RIGHT(')'), + TAG_COMPARE_LEFT('<'), TAG_COMPARE_RIGHT('>'), _TILDE('~'), @@ -97,7 +96,7 @@ public enum FCDotCDC1604DashP6 implements FourCornerX06BaklavaPoint, FourCornerX BAR_V_LEFT('\\'), BAR_V_RIGHT('/'), _AT('@'), - /// The tone letter 'A' is "one" and is equal to 'a', if your computer is expensive and has a lower-case char ROM, than this is 'a' except after __GLUE marker. + /// The tone letter 'A' is "one", if your computer is expensive and has a lower-case char ROM, than this is 'a' except after some pie glue. NX01_A('A'), NX02_B('B'), NX03_C('C'), @@ -136,23 +135,23 @@ public enum FCDotCDC1604DashP6 implements FourCornerX06BaklavaPoint, FourCornerX } @Override - public int baklavaPoint() { - return ordinal(); + public int[] baklavaPoints() { + return new int[] {ordinal()}; } @Override - public int muffinPoint() { - return cakePoint(); + public int[] muffinPoints() { + return cakePoints(); } @Override - public int cakePoint() { - return FourCornerDotCake.FC_CDC1604_P6.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_CDC1604_P6.getStart() + ordinal()}; } @Override - public int codePoint() { - return codePoint; + public int[] codePoints() { + return new int[] {codePoint}; } static public int length() { @@ -162,4 +161,26 @@ public enum FCDotCDC1604DashP6 implements FourCornerX06BaklavaPoint, FourCornerX static public FCDotCDC1604DashP6 indexOf(int idx) { return VALUES[idx]; } + + static public char escapeSignUnicode(int idx) { + if (idx == 0) { + return '␀'; + } + if (idx == 1) { + return '␁'; + } + if (idx == 2) { + return '␂'; + } + if (idx == 3) { + return '␃'; + } + if (idx == 4) { + return '␄'; + } + if (idx == 5) { + return '␅'; + } + throw new IllegalArgumentException("Unsupported index: " + idx); + } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashE6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashE6.java index 3b700fc..864ff2e 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashE6.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashE6.java @@ -23,9 +23,9 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX06BaklavaPoint; -import org.x4o.o2o.fc18.FourCornerX08MuffinPoint; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX06BaklavaPoints; +import org.x4o.o2o.fc18.FourCornerX08MuffinPoints; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.DEC1604-E2" Four Corner dot Direct or Escaped Control in grid of 16 by 04 of dashed Escape codes V2. @@ -41,24 +41,22 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 24, 2024 */ -public enum FCDotDEC1604DashE6 implements FourCornerX06BaklavaPoint, FourCornerX08MuffinPoint, FourCornerX18CakePoint { +public enum FCDotDEC1604DashE6 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. __ESC6_APL, - /// On 6 bit escape to the BYD baklave + /// On 6 bit escape to the BYD baklave. __ESC6_BYD, + /// Duel escape stops the escaped PIE or PIN 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. - /// Stream six octals per cake point in NX01 to NX08, until any out of range P6, thus ending with __ESC + /// Stream six octals as CDC chars in NX01_A to NX08_H, until any out of range P6. __ESC68_FC18, - // "low line" escape for next single letter A-Z. - /// These were produced on APL printing terminals by over-striking a straight capital letter with an underscore character. - /// Example a̲b̲c̲/A̲B̲C̲ - __ESC_LL, - /// "low line spaced" also called a "macron below" escape for next single letter A-Z. - /// Example a̱ḇc̱/A̱ḆC̱ - __ESC_LLSP, + /// Lower case escape code for only ONE next char is NX01_A to NX06_Z + __ESC_BELOW, UNDEFINED__QUESTION, UNDEFINED__EXCLAMATION, @@ -96,6 +94,7 @@ public enum FCDotDEC1604DashE6 implements FourCornerX06BaklavaPoint, FourCornerX UNDEFINED__BAR_V_LEFT, UNDEFINED__BAR_V_RIGHT, UNDEFINED___AT, + /// MSX CURSOR UP = VT-52 UNDEFINED__NX01_A, UNDEFINED__NX02_B, UNDEFINED__NX03_C, @@ -170,18 +169,18 @@ public enum FCDotDEC1604DashE6 implements FourCornerX06BaklavaPoint, FourCornerX } @Override - public int baklavaPoint() { - return ordinal(); + public int[] baklavaPoints() { + return new int[] {FCDotCDC1604DashP6.__ESC6.ordinal(), ordinal()}; } @Override - public int muffinPoint() { - return cakePoint(); + public int[] muffinPoints() { + return cakePoints(); } @Override - public int cakePoint() { - return FourCornerDotCake.FC_DEC1604_E6.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_DEC1604_E6.getStart() + ordinal()}; } static public int length() { diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotIBM1616DashD8.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotIBM1616DashD8.java index c4a8864..e8c5e3e 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotIBM1616DashD8.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotIBM1616DashD8.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.IBM1616-D8" Four Corner Interim Byte Mode, embed raw 8 bit Data @@ -32,7 +32,7 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotIBM1616DashD8 implements FourCornerX18CakePoint { +public enum FCDotIBM1616DashD8 implements FourCornerX18CakePoints { NXX_001, NXX_002, NXX_003, @@ -292,7 +292,7 @@ public enum FCDotIBM1616DashD8 implements FourCornerX18CakePoint { ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_IBM1616_D8.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_IBM1616_D8.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0F.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0F.java index e77f19f..c546765 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0F.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0F.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.NCR1632-0F" Four Corner New Counting Rods optional flags. @@ -31,14 +31,14 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 31, 2024 */ -public enum FCDotNCR1632Dash0F implements FourCornerX18CakePoint { +public enum FCDotNCR1632Dash0F implements FourCornerX18CakePoints { /// Reserved TODO: Check if we need 1PI/2PI/3PI/NaN minus in 4D and maybe replace math symbols from P6 to here.. RESERVED, ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_NCR1632_0F.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_NCR1632_0F.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0M.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0M.java index 5ddb268..f95ce8d 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0M.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0M.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.NCR1632-0M" Four Corner New Counting Rods terminator pie multiplier. @@ -31,7 +31,7 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 31, 2024 */ -public enum FCDotNCR1632Dash0M implements FourCornerX18CakePoint { +public enum FCDotNCR1632Dash0M implements FourCornerX18CakePoints { NXX_001, NXX_002, NXX_003, @@ -547,7 +547,7 @@ public enum FCDotNCR1632Dash0M implements FourCornerX18CakePoint { ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_NCR1632_0M.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_NCR1632_0M.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1T.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1T.java index a226f90..6671b57 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1T.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1T.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.NCR1632-1T" Four Corner New Counting Rods selects the Terminator pie. @@ -31,7 +31,7 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotNCR1632Dash1T implements FourCornerX18CakePoint { +public enum FCDotNCR1632Dash1T implements FourCornerX18CakePoints { NXX_001, NXX_002, NXX_003, @@ -547,7 +547,7 @@ public enum FCDotNCR1632Dash1T implements FourCornerX18CakePoint { ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_NCR1632_1T.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_NCR1632_1T.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1V.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1V.java index 7aaea69..dd5d804 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1V.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1V.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.NCR1632-1V" Four Corner New Counting Rods One Value of a terminator slice. @@ -31,7 +31,7 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotNCR1632Dash1V implements FourCornerX18CakePoint { +public enum FCDotNCR1632Dash1V implements FourCornerX18CakePoints { NXX_001, NXX_002, NXX_003, @@ -547,7 +547,7 @@ public enum FCDotNCR1632Dash1V implements FourCornerX18CakePoint { ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_NCR1632_1V.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_NCR1632_1V.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0801DashH3.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0801DashH3.java index 4600a43..a417d8d 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0801DashH3.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0801DashH3.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.OCE0801-H3" Four Corner Octal Character Encoding in Hinari 3 bit. @@ -32,7 +32,7 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotOCE0801DashH3 implements FourCornerX18CakePoint { +public enum FCDotOCE0801DashH3 implements FourCornerX18CakePoints { NXX_001, NXX_002, NXX_003, @@ -44,7 +44,7 @@ public enum FCDotOCE0801DashH3 implements FourCornerX18CakePoint { ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_OCE0801_H3.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_OCE0801_H3.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0808DashH6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0808DashH6.java index 6ebb28f..5e40f76 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0808DashH6.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0808DashH6.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.OCE0808-H6" Four Corner Octal Character Encoding in Hinari 6 bit. @@ -32,7 +32,7 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotOCE0808DashH6 implements FourCornerX18CakePoint { +public enum FCDotOCE0808DashH6 implements FourCornerX18CakePoints { NXX_001, NXX_002, NXX_003, @@ -100,7 +100,7 @@ public enum FCDotOCE0808DashH6 implements FourCornerX18CakePoint { ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_OCE0808_H6.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_OCE0808_H6.getStart() + ordinal()}; } } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0864DashH9.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0864DashH9.java index 9bef4ee..add1d8a 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0864DashH9.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0864DashH9.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoints; /** * "FC.OCE0864-H9" Four Corner Octal Character Encoding in Hinari 9 bit. @@ -32,7 +32,7 @@ import org.x4o.o2o.fc18.FourCornerX18CakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotOCE0864DashH9 implements FourCornerX18CakePoint { +public enum FCDotOCE0864DashH9 implements FourCornerX18CakePoints { NXX_001, NXX_002, NXX_003, @@ -548,7 +548,7 @@ public enum FCDotOCE0864DashH9 implements FourCornerX18CakePoint { ; @Override - public int cakePoint() { - return FourCornerDotCake.FC_OCE0864_H9.getStart() + ordinal(); + public int[] cakePoints() { + return new int[] {FourCornerDotCake.FC_OCE0864_H9.getStart() + ordinal()}; } } 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 ccdcfea..e5cbcee 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 @@ -36,9 +36,8 @@ public class FourCornerDotCakeTest { @Test public void testValues() throws Exception { for (FourCornerDotCake v : FourCornerDotCake.values()) { - Assertions.assertNotNull(v); - Assertions.assertTrue(v.getStart() < v.getStop()); + Assertions.assertTrue(v.getStart() <= v.getStop(), "Start is larger than stop in: " + v.name()); System.out.println("Cake start: 0x" + Integer.toHexString(v.getStart()) + " end: 0" + Integer.toHexString(v.getStop()) + " of " + v.name() + " size: " + v.getLength()); } } 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 f4d531e..561e4bf 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 @@ -27,7 +27,9 @@ import java.util.List; 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.FCDotDEC1604DashE6; /** * Tests four corner displayed as unicode. @@ -37,28 +39,55 @@ import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; */ public class FourCornerUnicodeDisplayTest { + @Test + public void testPINSimple() throws Exception { + List cdc = new ArrayList<>(); + cdc.add(FCDotCDC1604DashP6.NX24_X); // = X + cdc.add(FCDotCDC1604DashP6.__PIN); + cdc.add(FCDotCDC1604DashP6.NX03_C); // T003 + cdc.add(FCDotCDC1604DashP6.NX01_A); // NXX_001 + + String out = FourCornerUnicodeDisplay.simple().renderFromP6(cdc); + Assertions.assertEquals("X¹/₃", out); + } + @Test public void testMixedCasing() throws Exception { - List cdc = new ArrayList<>(); - cdc.add(FCDotCDC1604DashP6.NX01_A); - cdc.add(FCDotCDC1604DashP6.__SPACE); + List cdc = new ArrayList<>(); + + //cdc.add(FCDotCDC1604DashP6.__PIE); + //cdc.add(FCDotCDC1604DashP6.NX26_Z); // select lower case + //cdc.add(FCDotCDC1604DashP6.NX01_A); + cdc.add(FCDotPIE9CDash26.LOW_A); + cdc.add(FCDotPIE9CDash26.LOW_B); // if used as this per letter full escaping here.... + + cdc.add(FCDotCDC1604DashP6.__SPACE); // out of range is end lower cdc.add(FCDotCDC1604DashP6.NX02_B); - cdc.add(FCDotCDC1604DashP6.__GLUE); + + //cdc.add(FCDotCDC1604DashP6.__ESC6); + cdc.add(FCDotDEC1604DashE6.__ESC_BELOW); // test escape code cdc.add(FCDotCDC1604DashP6.NX03_C); - cdc.add(FCDotCDC1604DashP6.NX04_D); + + cdc.add(FCDotCDC1604DashP6.NX04_D); // thus this upper case D cdc.add(FCDotCDC1604DashP6._DOT); - cdc.add(FCDotCDC1604DashP6.__GLUE); + cdc.add(FCDotCDC1604DashP6.__PIE); + 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); - Assertions.assertEquals("A BCD.JK", FourCornerUnicodeDisplay.simple().renderFromP6(cdc)); - Assertions.assertEquals("a bCd.Jk", FourCornerUnicodeDisplay.mixed().renderFromP6(cdc)); - Assertions.assertEquals("a bᐧCd.Jk", FourCornerUnicodeDisplay.mixedᐧEskimo().renderFromP6(cdc)); + //cdc.add(FCDotCDC1604DashP6.__ESC6); + cdc.add(FCDotDEC1604DashE6.__ESC_STOP); + cdc.add(FCDotCDC1604DashP6.NX15_O); + + Assertions.assertEquals("ab B␃cD.jklmO", FourCornerUnicodeDisplay.simple().renderFromP6(cdc)); + Assertions.assertEquals("ab B␃cD.jklmO", FourCornerUnicodeDisplay.mixed().renderFromP6(cdc)); } @Test public void testNumberTerminatorOutOfRange() throws Exception { - List cdc = new ArrayList<>(); + List cdc = new ArrayList<>(); cdc.add(FCDotCDC1604DashP6.NX24_X); // = X cdc.add(FCDotCDC1604DashP6.__PIE); cdc.add(FCDotCDC1604DashP6._CARET); // ^ @@ -73,16 +102,16 @@ public class FourCornerUnicodeDisplayTest { @Test public void testNumberPieOutOfRange() throws Exception { - List cdc = new ArrayList<>(); + List cdc = new ArrayList<>(); cdc.add(FCDotCDC1604DashP6.__PIE); cdc.add(FCDotCDC1604DashP6.NX01_A); - cdc.add(FCDotCDC1604DashP6.NX02_B); // = B + cdc.add(FCDotCDC1604DashP6.NX02_B); // B cdc.add(FCDotCDC1604DashP6.__PIE); - cdc.add(FCDotCDC1604DashP6.NX09_I); - cdc.add(FCDotCDC1604DashP6.NX03_C); // = 3 - cdc.add(FCDotCDC1604DashP6.NX10_J); // = J + cdc.add(FCDotCDC1604DashP6.NX10_J); + cdc.add(FCDotCDC1604DashP6.NX04_D); // 3 + cdc.add(FCDotCDC1604DashP6.NX11_K); // K String out = FourCornerUnicodeDisplay.simple().renderFromP6(cdc); - Assertions.assertEquals("B3J", out); + Assertions.assertEquals("B3K", out); } } 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 d7b8ea1..2686f4d 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 @@ -38,29 +38,51 @@ public class FourCornerUnicodeImportTest { @Test public void testAsciiSimple() throws Exception { - List cdc = FourCornerUnicodeImport.lossy().convertToP6("foobar"); + List cdc = FourCornerUnicodeImport.lossy().convertToP6("foobar"); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(6, cdc.size()); - Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(1)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(2)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(3)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(4)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(5)); + Assertions.assertEquals(8, cdc.size()); + Assertions.assertEquals(FCDotCDC1604DashP6.__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(FCDotCDC1604DashP6.NX02_B, cdc.get(5)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(6)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(7)); String out = FourCornerUnicodeDisplay.simple().renderFromP6(cdc); - Assertions.assertEquals("FOOBAR", out); + Assertions.assertEquals("foobar", out); + } + + @Test + public void testAsciiUpper() throws Exception { + List cdc = FourCornerUnicodeImport.lossy().convertToP6("fooBAR"); + Assertions.assertNotNull(cdc); + Assertions.assertFalse(cdc.isEmpty()); + Assertions.assertEquals(10, cdc.size()); + Assertions.assertEquals(FCDotCDC1604DashP6.__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(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)); + + String out = FourCornerUnicodeDisplay.simple().renderFromP6(cdc); + Assertions.assertEquals("fooBAR", out); } @Test public void testCheckDiacritics() throws Exception { String foobar = "ꞘȍőḆẬř"; - List cdc = FourCornerUnicodeImport.lossy().convertToP6(foobar); + List cdc = FourCornerUnicodeImport.lossy().convertToP6(foobar); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); Assertions.assertEquals("FOOBAR", FourCornerUnicodeDisplay.simple().renderFromP6(cdc)); - Assertions.assertEquals("foobar", FourCornerUnicodeDisplay.mixed().renderFromP6(cdc)); Assertions.assertThrows(IllegalArgumentException.class, () -> { FourCornerUnicodeImport.strict().convertToP6(foobar); }); @@ -68,26 +90,20 @@ public class FourCornerUnicodeImportTest { @Test public void testNumber012() throws Exception { - List cdc = FourCornerUnicodeImport.lossy().convertToP6("01201337"); + List cdc = FourCornerUnicodeImport.lossy().convertToP6("01201337"); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); - Assertions.assertEquals(16, cdc.size()); + Assertions.assertEquals(10, cdc.size()); Assertions.assertEquals(FCDotCDC1604DashP6.__PIE, cdc.get(0)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(1)); + Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdc.get(1)); Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(2)); // 0 - Assertions.assertEquals(FCDotCDC1604DashP6.__PIE, cdc.get(3)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX09_I, cdc.get(4)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(5)); // 1 - Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(6)); // 2 - Assertions.assertEquals(FCDotCDC1604DashP6.__PIE, cdc.get(7)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(8)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(9)); // 0 - Assertions.assertEquals(FCDotCDC1604DashP6.__PIE, cdc.get(10)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX09_I, cdc.get(11)); - Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(12)); // 1 - Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdc.get(13)); // 3 - Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdc.get(14)); // 3 - Assertions.assertEquals(FCDotCDC1604DashP6.NX07_G, cdc.get(15)); // 7 + 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 String out = FourCornerUnicodeDisplay.simple().renderFromP6(cdc); Assertions.assertEquals("01201337", out); @@ -95,7 +111,7 @@ public class FourCornerUnicodeImportTest { @Test public void testLineEndings() throws Exception { - List cdc = FourCornerUnicodeImport.strict().convertToP6("A\nB\rC\r\nD\n"); + List cdc = FourCornerUnicodeImport.strict().convertToP6("A\nB\rC\r\nD\n"); Assertions.assertNotNull(cdc); Assertions.assertFalse(cdc.isEmpty()); Assertions.assertEquals(8, cdc.size()); 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 new file mode 100644 index 0000000..4399e18 --- /dev/null +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/FourCornerWriteExampleMD.java @@ -0,0 +1,328 @@ +/* + * 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; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.StandardOpenOption; +import java.util.ArrayList; +import java.util.List; + +import org.x4o.o2o.fc18.zero33.FCDotAPL1604DashS6; +import org.x4o.o2o.fc18.zero33.FCDotBYD1604DashC6; +import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6; + +/** + * Writes fc example markdown document. + * + * @author Willem Cazander + * @version 1.0 Jan 05, 2025 + */ +public class FourCornerWriteExampleMD { + + static public void main(String[] args) { + FourCornerWriteExampleMD run = new FourCornerWriteExampleMD(); + try { + run.writeExample(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void writeExample() throws IOException { + StringBuilder buf = new StringBuilder(); + writeTitle1(buf, "Four Corner"); + buf.append("\n"); + buf.append("Overview of four corner chars...\n"); + buf.append("\n"); + writeTableBlocks(buf); + buf.append("

\n"); + + writeTitle2(buf, "Blocks"); + + writeTitle3(buf, "FC.CDC1604-P6"); + writeTableStart17(buf); + writeCDC(buf, 0x00); + writeCDC(buf, 0x10); + writeCDC(buf, 0x20); + writeCDC(buf, 0x30); + writeTableEnd(buf); + buf.append("

\n"); + + writeTitle3(buf, "FC.APL1604-S6"); + writeTableStart17(buf); + writeAPL(buf, 0x00); + writeAPL(buf, 0x10); + writeAPL(buf, 0x20); + writeAPL(buf, 0x30); + writeTableEnd(buf); + buf.append("

\n"); + + writeTitle3(buf, "FC.BYD1604-C6"); + writeTableStart17(buf); + writeBYD(buf, 0x00); + writeBYD(buf, 0x10); + writeBYD(buf, 0x20); + writeBYD(buf, 0x30); + writeTableEnd(buf); + buf.append("

\n"); + + writeTitle3(buf, "FC.PIE9C-XX"); + writeTableStart28(buf); + writePIE(buf, FourCornerDotCake.FC_PIE9C_01); + writePIE(buf, FourCornerDotCake.FC_PIE9C_02); + writePIE(buf, FourCornerDotCake.FC_PIE9C_03); + writePIE(buf, FourCornerDotCake.FC_PIE9C_04); + writePIE(buf, FourCornerDotCake.FC_PIE9C_05); + writePIE(buf, FourCornerDotCake.FC_PIE9C_06); + writePIE(buf, FourCornerDotCake.FC_PIE9C_07); + writePIE(buf, FourCornerDotCake.FC_PIE9C_08); + writePIE(buf, FourCornerDotCake.FC_PIE9C_09); + writePIE(buf, FourCornerDotCake.FC_PIE9C_10); + writePIE(buf, FourCornerDotCake.FC_PIE9C_11); + writePIE(buf, FourCornerDotCake.FC_PIE9C_12); + writePIE(buf, FourCornerDotCake.FC_PIE9C_13); + writePIE(buf, FourCornerDotCake.FC_PIE9C_14); + writePIE(buf, FourCornerDotCake.FC_PIE9C_15); + writePIE(buf, FourCornerDotCake.FC_PIE9C_16); + writePIE(buf, FourCornerDotCake.FC_PIE9C_17); + writePIE(buf, FourCornerDotCake.FC_PIE9C_18); + writePIE(buf, FourCornerDotCake.FC_PIE9C_19); + writePIE(buf, FourCornerDotCake.FC_PIE9C_20); + writePIE(buf, FourCornerDotCake.FC_PIE9C_21); + writePIE(buf, FourCornerDotCake.FC_PIE9C_22); + writePIE(buf, FourCornerDotCake.FC_PIE9C_23); + writePIE(buf, FourCornerDotCake.FC_PIE9C_24); + writePIE(buf, FourCornerDotCake.FC_PIE9C_25); + writePIE(buf, FourCornerDotCake.FC_PIE9C_26); + writePIE(buf, FourCornerDotCake.FC_PIE9C_27); + writeTableEnd(buf); + buf.append("

\n"); + + writeTitle3(buf, "FC.PIN9D-XX"); + writeTableStart28(buf); + writePIN(buf); + writeTableEnd(buf); + buf.append("

\n"); + + File out = new File("../src/site/wigiti/README-fc18.md"); + Files.writeString(out.toPath(), buf.toString(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); + } + + private void writeTableBlocks(StringBuilder buf) { + buf.append("\n"); + buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); + buf.append("\n"); + + for (FourCornerDotCake v : FourCornerDotCake.values()) { + buf.append(""); + buf.append(""); + buf.append(String.format("", v.getStart())); + buf.append(String.format("", v.getStop())); + buf.append(""); + buf.append("\n"); + } + + writeTableEnd(buf); + } + + private void writeCDC(StringBuilder buf, int off) { + String prefixHex = Integer.toHexString(off).toUpperCase(); + buf.append(""); + buf.append(""); + for (int i=off; i<16+off;i++) { + FCDotCDC1604DashP6 cdc = FCDotCDC1604DashP6.indexOf(i); + int codePoint = cdc.codePoints()[0]; + buf.append(""); + } + buf.append("\n"); + } + + private void writeAPL(StringBuilder buf, int off) { + String prefixHex = Integer.toHexString(0x80 + off).toUpperCase(); + buf.append(""); + buf.append(""); + for (int i=off; i<16+off;i++) { + FCDotAPL1604DashS6 apl = FCDotAPL1604DashS6.indexOf(i); + int codePoint = apl.codePoints()[0]; + buf.append(""); + } + buf.append("\n"); + } + + private void writeBYD(StringBuilder buf, int off) { + String prefixHex = Integer.toHexString(0xC0 + off).toUpperCase(); + buf.append(""); + buf.append(""); + for (int i=off; i<16+off;i++) { + FCDotBYD1604DashC6 byd = FCDotBYD1604DashC6.indexOf(i); + int codePoint = byd.codePoints()[0]; + buf.append(""); + } + buf.append("\n"); + } + + private void writePIE(StringBuilder buf, FourCornerDotCake slice) { + buf.append(""); + buf.append(""); + for (int i=0; i<27;i++) { + if (i >= slice.getLength()) { + buf.append(""); + continue; + } + int char18 = slice.getStart() + i; + String char18Str = FourCornerUnicodeDisplay.simple().renderFromInt18(List.of(char18)); + buf.append(""); + } + buf.append("\n"); + } + + private void writePIN(StringBuilder buf) { + for (int t=0; t<27;t++) { + buf.append(""); + buf.append(""); + for (int i=0; i<27;i++) { + if (i > t) { + buf.append(""); + continue; + } + List piNum = new ArrayList<>(); + piNum.add(FCDotCDC1604DashP6.__PIN.ordinal()); + piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + t); + piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + i); + String char18Str = FourCornerUnicodeDisplay.simple().renderFromInt18(piNum); + buf.append(""); + } + buf.append("\n"); + } + } + + private void writeTableStart28(StringBuilder buf) { + buf.append("
BlockStartEndSize
" + v.qname() + "%06X%06X" + v.getLength() + "
U+0000"); + buf.append(prefixHex.charAt(0)); + buf.append("x"); + if (codePoint == '\u0000') { + buf.append("␀"); + } else if (codePoint == '\u0001') { + buf.append("␁"); + } else if (codePoint == '\u0002') { + buf.append("␂"); + } else if (codePoint == '\u0003') { + buf.append("␃"); + } else if (codePoint == ' ') { + buf.append("␠"); + } else if (codePoint == '\n') { + buf.append("␊"); + } else if (codePoint == '<') { + buf.append("<"); + } else if (codePoint == '>') { + buf.append(">"); + } else { + buf.appendCodePoint(codePoint); + } + buf.append("
U+0000"); + buf.append(prefixHex.charAt(0)); + buf.append("x"); + if (codePoint == '\u0000') { + buf.append("␀"); + } else { + buf.appendCodePoint(codePoint); + } + buf.append("
U+0000"); + buf.append(prefixHex.charAt(0)); + buf.append("x"); + if (codePoint == '\u0000') { + buf.append("␀"); + } else { + buf.appendCodePoint(codePoint); + } + buf.append("
"); + buf.append(slice.qname()); + buf.append(""); + for (int c : char18Str.codePoints().toArray()) { + if (c == '\u0000') { + buf.append("␀"); + } else { + buf.appendCodePoint(c); + } + } + buf.append("
T"); + buf.append(String.format("%03d", t + 1)); + buf.append(""); + for (int c : char18Str.codePoints().toArray()) { + if (c == '\u0000') { + buf.append("␀"); + } else { + buf.appendCodePoint(c); + } + } + buf.append("
\n"); + buf.append(""); + buf.append(""); + for (int i=0; i<27;i++) { + buf.append(""); + } + buf.append("\n"); + } + + private void writeTableStart17(StringBuilder buf) { + buf.append("
"); + buf.append(i + 1); + buf.append("
\n"); + buf.append(""); + buf.append(""); + for (int i=0; i<16;i++) { + buf.append(""); + } + buf.append("\n"); + } + + private void writeTableEnd(StringBuilder buf) { + buf.append("
0x"); + buf.append(Integer.toHexString(i).toUpperCase()); + buf.append("
\n"); + } + + private void writeTitle1(StringBuilder buf, String title) { + buf.append("\n# "); + buf.append(title); + buf.append("\n\n"); + } + + private void writeTitle2(StringBuilder buf, String title) { + buf.append("\n## "); + buf.append(title); + buf.append("\n\n"); + } + + private void writeTitle3(StringBuilder buf, String title) { + buf.append("\n### "); + buf.append(title); + buf.append("\n\n"); + } +} diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6Test.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6Test.java index 889c054..30542e9 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6Test.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6Test.java @@ -43,11 +43,11 @@ public class FCDotAPL1604DashS6Test { Map global = new HashMap<>(); for (FCDotAPL1604DashS6 v : FCDotAPL1604DashS6.values()) { Assertions.assertNotNull(v); - if (global.containsKey(v.codePoint())) { + if (global.containsKey(v.codePoints()[0])) { duplicate = true; break; } - global.put(v.codePoint(), v); + global.put(v.codePoints()[0], v); } Assertions.assertTrue(global.size() > 1); Assertions.assertFalse(duplicate, "Duplicate ascii core value detected"); diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6Test.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6Test.java index 024adab..40d83ba 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6Test.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6Test.java @@ -43,11 +43,11 @@ public class FCDotBYD1604DashC6Test { Map global = new HashMap<>(); for (FCDotBYD1604DashC6 v : FCDotBYD1604DashC6.values()) { Assertions.assertNotNull(v); - if (global.containsKey(v.codePoint())) { + if (global.containsKey(v.codePoints()[0])) { duplicate = true; break; } - global.put(v.codePoint(), v); + global.put(v.codePoints()[0], v); } Assertions.assertTrue(global.size() > 1); Assertions.assertFalse(duplicate, "Duplicate ascii core value detected"); diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6Test.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6Test.java index fd9428f..3b95a9a 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6Test.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6Test.java @@ -43,11 +43,11 @@ public class FCDotCDC1604DashP6Test { Map global = new HashMap<>(); for (FCDotCDC1604DashP6 v : FCDotCDC1604DashP6.values()) { Assertions.assertNotNull(v); - if (global.containsKey(v.codePoint())) { + if (global.containsKey(v.codePoints()[0])) { duplicate = true; break; } - global.put(v.codePoint(), v); + global.put(v.codePoints()[0], v); } Assertions.assertTrue(global.size() > 1); Assertions.assertFalse(duplicate, "Duplicate ascii core value detected");