FC18: Deleted 8 bit muffin sequence

This commit is contained in:
Willem Cazander 2025-09-06 13:54:40 +02:00
parent 5a27562ba0
commit 8a7bfff19b
13 changed files with 22 additions and 171 deletions

View file

@ -37,7 +37,6 @@ import org.x4o.fc18.cake2.FourCornerX00PetitVide;
import org.x4o.fc18.cake2.FourCornerX18CakePointDotName;
import org.x4o.fc18.cake2.FourCornerX21CodePointSequence;
import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D;
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC0801DashE10;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
import org.x4o.fc18.cake2.zero33.vt06.VTDash06DotZeroACursor;
import org.x4o.fc18.cake2.zero33.vt06.VTDash06DotZeroCClear;
@ -217,11 +216,6 @@ public class FCDocWriter {
MaisDocNode wordNode = sliceNode.addNode(createNodeCakeWord(dotCake, i));
if (FourCornerDotCake.FC_DEC2701_PX0.equals(dotCake)) {
if ("ESC_DEC0801_E10".equals(wordNode.getName())) {
for (FCDotDEC0801DashE10 vide : FCDotDEC0801DashE10.values()) {
wordNode.addNode(createNodeCakeWordEscape(vide, vide.name()));
}
}
if ("ESC68_INC0801_P8".equals(wordNode.getName())) {
for (FCDotINC0801DashP8 vide : FCDotINC0801DashP8.values()) {
wordNode.addNode(createNodeCakeWordEscape(vide, vide.name()));

View file

@ -31,7 +31,6 @@ import java.util.PrimitiveIterator;
import org.x4o.fc18.cake2.FourCornerX00PetitVideCoinCarne;
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence;
import org.x4o.fc18.cake2.FourCornerX18CakePointDotName;
import org.x4o.fc18.cake2.FourCornerX18CakePointSequence;
import org.x4o.fc18.cake2.FourCornerX21CodePointSequence;
@ -103,7 +102,6 @@ public class FCDocSegmentWriterCakeWord implements FCDocSegmentWriter {
Optional<FourCornerX21CodePointSequence> x21CodeDisplay = videPoint.kaasX21CodeSequence();
Optional<FourCornerX06BaklavaPointSequence> x06BaklavaSequence = videPoint.kaasX06BaklavaSequence();
Optional<FourCornerX08MuffinPointSequence> x08MuffinSequence = videPoint.kaasX08MuffinSequence();
Optional<FourCornerX18CakePointSequence> x18CakeSequence = videPoint.kaasX18CakeSequence();
Optional<FourCornerX18CakePointDotName> x18DotName = videPoint.kaasX18CakeDotName();
@ -124,9 +122,6 @@ public class FCDocSegmentWriterCakeWord implements FCDocSegmentWriter {
if (x06BaklavaSequence.isPresent()) {
writeTableRowSequenceHex(writer, "Sequence-X06", 2, x06BaklavaSequence.get().baklavaPointSequence());
}
if (x08MuffinSequence.isPresent()) {
writeTableRowSequenceHex(writer, "Sequence-X08", 2, x08MuffinSequence.get().muffinPointSequence());
}
if (x18CakeSequence.isPresent()) {
writeTableRowSequenceHex(writer, "Sequence-X18", 6, x18CakeSequence.get().cakePointSequence());
}

View file

@ -34,7 +34,6 @@ import java.util.function.Consumer;
import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerX00PetitVide;
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence;
import org.x4o.fc18.cake2.FourCornerX18CakePointSequence;
import org.x4o.fc18.cake2.pie9d.FCDotPIE9DDash09;
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
@ -107,18 +106,6 @@ public class FourCornerUnicodeDisplay {
renderFromInt18(charPoints, buf);
}
@Deprecated
public String renderFromX08(List<FourCornerX08MuffinPointSequence> chars) {
return buildString(v -> renderFromX08(chars, v));
}
@Deprecated
public void renderFromX08(List<FourCornerX08MuffinPointSequence> chars, StringBuilder buf) {
List<Integer> charPoints = new ArrayList<>(chars.size());
chars.forEach(v -> charPoints.addAll(v.muffinPointSequence()));
renderFromInt18(charPoints, buf);
}
@Deprecated
public String renderFromX18(List<FourCornerX18CakePointSequence> chars) {
return buildString(v -> renderFromX18(chars, v));

View file

@ -34,7 +34,6 @@ import java.util.stream.Collectors;
import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerX00PetitVide;
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence;
import org.x4o.fc18.cake2.FourCornerX18CakePointSequence;
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D;
@ -97,26 +96,22 @@ public class FourCornerUnicodeImport {
}
public List<FourCornerX06BaklavaPointSequence> convertToX06(String text) {
return convertToXXX(text, 6).stream().map(v -> v.kaasX06BaklavaSequence().get()).toList();
}
public List<FourCornerX08MuffinPointSequence> convertToX08(String text) {
return convertToXXX(text, 8).stream().map(v -> v.kaasX08MuffinSequence().get()).toList();
return convertToXXX(text, true).stream().map(v -> v.kaasX06BaklavaSequence().get()).toList();
}
public List<FourCornerX18CakePointSequence> convertToX18(String text) {
return convertToXXX(text, 18).stream().map(v -> v.kaasX18CakeSequence().get()).toList();
return convertToXXX(text, false).stream().map(v -> v.kaasX18CakeSequence().get()).toList();
}
final private class ImportState {
final int bits;
final boolean sixBit;
final PrimitiveIterator.OfInt input;
final List<FourCornerX00PetitVide> output;
FCDotCDC1604DashP6 cdcNumberTerminator;
FCDotCDC1604DashP6 cdcCaseTerminator;
int codePoint;
private ImportState(int bits, PrimitiveIterator.OfInt input, List<FourCornerX00PetitVide> output) {
this.bits = bits;
private ImportState(boolean sixBit, PrimitiveIterator.OfInt input, List<FourCornerX00PetitVide> output) {
this.sixBit = sixBit;
this.input = input;
this.output = output;
}
@ -126,8 +121,8 @@ public class FourCornerUnicodeImport {
}
}
private List<FourCornerX00PetitVide> convertToXXX(String text, int bits) {
ImportState ctx = new ImportState(bits, text.codePoints().iterator(), new ArrayList<>(text.length()));
private List<FourCornerX00PetitVide> convertToXXX(String text, boolean sixBit) {
ImportState ctx = new ImportState(sixBit, text.codePoints().iterator(), new ArrayList<>(text.length()));
while (ctx.input.hasNext()) {
ctx.codePoint = ctx.input.nextInt();
if (handleDataGramWordSpacerTypes(ctx)) {
@ -161,7 +156,11 @@ public class FourCornerUnicodeImport {
private String buildErrorMessage(ImportState ctx) {
StringBuilder err = new StringBuilder();
err.append("Unsupported-");
err.append(ctx.bits);
if (ctx.sixBit) {
err.append("FC6");
} else {
err.append("FC18");
}
err.append(" char: '");
err.appendCodePoint(ctx.codePoint);
err.append("' 0x");
@ -257,16 +256,11 @@ public class FourCornerUnicodeImport {
if (chs == null) {
return false;
}
if (ctx.bits == 6) {
if (ctx.sixBit) {
if (chs.kaasX06BaklavaSequence().isPresent()) {
ctx.output.add(chs);
return true;
}
} else if (ctx.bits == 8) {
if (chs.kaasX08MuffinSequence().isPresent()) {
ctx.output.add(chs);
return true;
}
} else {
if (chs.kaasX18CakeSequence().isPresent()) {
ctx.output.add(chs);
@ -277,7 +271,7 @@ public class FourCornerUnicodeImport {
}
private boolean handleNumber(ImportState ctx) {
if (ctx.bits == 18) {
if (!ctx.sixBit) {
return false; // 18 direct cake point is found by generic lookup
}
if (ctx.codePoint >= '0' && ctx.codePoint <= '9') {
@ -299,7 +293,7 @@ public class FourCornerUnicodeImport {
}
private boolean handleLowCase(ImportState ctx) {
if (ctx.bits == 18) {
if (!ctx.sixBit) {
return false; // 18 direct cake point is found by generic lookup
}
if (ctx.codePoint >= 'a' && ctx.codePoint <= 'z') {

View file

@ -32,7 +32,7 @@ import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0;
///
/// @author Willem Cazander
/// @version 1.0 Jan 18, 2025
public interface FourCornerDotCollePie9 extends FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointDotIndex, FourCornerX21CodePointDotIndex, FourCornerX00PetitVideCoinCarne {
public interface FourCornerDotCollePie9 extends FourCornerX06BaklavaPointSequence, FourCornerX18CakePointDotIndex, FourCornerX21CodePointDotIndex, FourCornerX00PetitVideCoinCarne {
@Override
default int codePointDotIndex() {
@ -50,11 +50,6 @@ public interface FourCornerDotCollePie9 extends FourCornerX06BaklavaPointSequenc
return letter;
}
@Override
default List<Integer> muffinPointSequence() {
return baklavaPointSequence();
}
@Override
default FourCornerX00PetitVideCoinCarneFrapper coinCarneFrapper() {
return FourCornerX00PetitVideCoinCarneFrapper.valueForNone();

View file

@ -28,18 +28,13 @@ import java.util.List;
///
/// @author Willem Cazander
/// @version 1.0 Jan 19, 2025
public interface FourCornerDotColleZero33 extends FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointDotIndex, FourCornerX21CodePointDotIndex, FourCornerX00PetitVideCoinCarne {
public interface FourCornerDotColleZero33 extends FourCornerX06BaklavaPointSequence, FourCornerX18CakePointDotIndex, FourCornerX21CodePointDotIndex, FourCornerX00PetitVideCoinCarne {
@Override
default List<Integer> codePointSequence() {
return List.of(codePointDotIndex());
}
@Override
default List<Integer> muffinPointSequence() {
return cakePointSequence();
}
@Override
default FourCornerX00PetitVideCoinCarneFrapper coinCarneFrapper() {
return FourCornerX00PetitVideCoinCarneFrapper.valueForNone();

View file

@ -32,12 +32,7 @@ import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0;
///
/// @author Willem Cazander
/// @version 1.0 Jan 20, 2025
public interface FourCornerDotColleZero33VT extends FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointSequence, FourCornerX18CakePointDotName {
@Override
default List<Integer> muffinPointSequence() {
return cakePointSequence();
}
public interface FourCornerDotColleZero33VT extends FourCornerX06BaklavaPointSequence, FourCornerX18CakePointSequence, FourCornerX18CakePointDotName {
default List<Integer> baklavaPointsVT06Action(FCDotCDC1604DashP6 group, FCDotCDC1604DashP6 action) {
List<Integer> result = new ArrayList<>();

View file

@ -38,10 +38,6 @@ public interface FourCornerX00PetitVide {
return this instanceof FourCornerX06BaklavaPointSequence?Optional.of(FourCornerX06BaklavaPointSequence.class.cast(this)):Optional.empty();
}
default Optional<FourCornerX08MuffinPointSequence> kaasX08MuffinSequence() {
return this instanceof FourCornerX08MuffinPointSequence?Optional.of(FourCornerX08MuffinPointSequence.class.cast(this)):Optional.empty();
}
default Optional<FourCornerX18CakePointDotIndex> kaasX18CakeDotIndex() {
return this instanceof FourCornerX18CakePointDotIndex?Optional.of(FourCornerX18CakePointDotIndex.class.cast(this)):Optional.empty();
}

View file

@ -1,35 +0,0 @@
/*
* 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.fc18.cake2;
import java.util.List;
/// Number index retriever for four corner muffin points.
///
/// @author Willem Cazander
/// @version 1.0 Jan 1, 2025
public interface FourCornerX08MuffinPointSequence extends FourCornerX00PetitVide {
/// One muffin piece weights 111 gram
List<Integer> muffinPointSequence();
}

View file

@ -27,7 +27,6 @@ import java.util.List;
import java.util.Objects;
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence;
import org.x4o.fc18.cake2.FourCornerX18CakePointDotName;
import org.x4o.fc18.cake2.FourCornerX18CakePointSequence;
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
@ -38,7 +37,7 @@ import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
* @author Willem Cazander
* @version 1.0 Jan 21, 2025
*/
public enum FCDotCMD5401Dash2D implements FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointSequence, FourCornerX18CakePointDotName {
public enum FCDotCMD5401Dash2D implements FourCornerX06BaklavaPointSequence, FourCornerX18CakePointSequence, FourCornerX18CakePointDotName {
/// Write out an basic spanish peace sign, a virtual none-excisting symbol.
CMD_F4TXT0001_SP(FCDotCDC1604DashP6.NX01_A),
@ -64,17 +63,9 @@ public enum FCDotCMD5401Dash2D implements FourCornerX06BaklavaPointSequence, Fou
return result;
}
@Override
public List<Integer> muffinPointSequence() {
List<Integer> result = new ArrayList<>();
result.addAll(FCDotDEC2701DashPX0.ESC68_CMD5401_2D.muffinPointSequence());
result.add(selector.muffinPointDotIndex());
return result;
}
@Override
public List<Integer> cakePointSequence() {
return muffinPointSequence();
return baklavaPointSequence();
}
static public FCDotCMD5401Dash2D valueOfCDC(int cdcPoint) {

View file

@ -26,7 +26,6 @@ import java.util.List;
import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence;
import org.x4o.fc18.cake2.FourCornerX18CakePointDotIndex;
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
@ -40,7 +39,7 @@ import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
* @author Willem Cazander
* @version 1.0 Dec 24, 2024
*/
public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointDotIndex {
public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, FourCornerX18CakePointDotIndex {
// =========== External escape sequence, who MUST terminate with
@ -179,11 +178,6 @@ public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, Fo
);
}
@Override
public List<Integer> muffinPointSequence() {
return baklavaPointSequence();
}
@Override
public List<Integer> cakePointSequence() {
return List.of(cakePointDotIndex());

View file

@ -28,7 +28,6 @@ import java.util.Objects;
import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence;
import org.x4o.fc18.cake2.FourCornerX18CakePointDotName;
import org.x4o.fc18.cake2.FourCornerX18CakePointSequence;
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
@ -39,7 +38,7 @@ import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
* @author Willem Cazander
* @version 1.0 Jan 21, 2025
*/
public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointSequence, FourCornerX18CakePointDotName {
public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, FourCornerX18CakePointSequence, FourCornerX18CakePointDotName {
/// !!!
/// Select LUA page 7A mode.
@ -94,11 +93,6 @@ public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, Fou
return result;
}
@Override
public List<Integer> muffinPointSequence() {
return baklavaPointSequence();
}
@Override
public List<Integer> cakePointSequence() {
return baklavaPointSequence();

View file

@ -28,7 +28,6 @@ import java.util.List;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence;
import org.x4o.fc18.cake2.FourCornerX18CakePointSequence;
import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash10;
import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash26;
@ -103,27 +102,6 @@ public class FourCornerUnicodeImportTest {
Assertions.assertEquals("␇␇␇]FOO␘␘␘BAR", FourCornerUnicodeDisplay.raw().renderFromX06(cdc));
}
@Test
public void testAsciiMixedX08() throws Exception {
List<FourCornerX08MuffinPointSequence> cdc = FourCornerUnicodeImport.strict().convertToX08("fooBAR");
Iterator<FourCornerX08MuffinPointSequence> cdi = cdc.iterator();
Assertions.assertNotNull(cdc);
Assertions.assertFalse(cdc.isEmpty());
Assertions.assertEquals(9, cdc.size());
Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_2PIE9C, cdi.next());
Assertions.assertEquals(FCDotCDC1604DashP6.NY26_SQUARE_RIGHT, cdi.next());
Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdi.next());
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdi.next());
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdi.next());
Assertions.assertEquals(FCDotDEC2701DashPX0.ESC_STOP, cdi.next());
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next());
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next());
Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdi.next());
String out = FourCornerUnicodeDisplay.text().renderFromX08(cdc);
Assertions.assertEquals("fooBAR", out);
}
@Test
public void testAsciiMixedX18() throws Exception {
List<FourCornerX18CakePointSequence> cdc = FourCornerUnicodeImport.strict().convertToX18("fooBAR");
@ -188,28 +166,6 @@ public class FourCornerUnicodeImportTest {
Assertions.assertEquals("01201337", out);
}
@Test
public void testNumberX08() throws Exception {
List<FourCornerX08MuffinPointSequence> cdc = FourCornerUnicodeImport.strict().convertToX08("01201337");
Iterator<FourCornerX08MuffinPointSequence> cdi = cdc.iterator();
Assertions.assertNotNull(cdc);
Assertions.assertFalse(cdc.isEmpty());
Assertions.assertEquals(10, cdc.size());
Assertions.assertEquals(FCDotDEC2701DashPX0.ESC68_2PIE9C, cdi.next());
Assertions.assertEquals(FCDotCDC1604DashP6.NY10_CARET, cdi.next());
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); // 0
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); // 1
Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdi.next()); // 2
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdi.next()); // 0
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdi.next()); // 1
Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdi.next()); // 3
Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdi.next()); // 3
Assertions.assertEquals(FCDotCDC1604DashP6.NX08_H, cdi.next()); // 7
String out = FourCornerUnicodeDisplay.text().renderFromX08(cdc);
Assertions.assertEquals("01201337", out);
}
@Test
public void testNumberX18() throws Exception {
List<FourCornerX18CakePointSequence> cdc = FourCornerUnicodeImport.strict().convertToX18("01201337");