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