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.FCDotPIE9CDash25;
|
||||||
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash26;
|
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash26;
|
||||||
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash27;
|
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash27;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotAPL1604DashP8L;
|
import org.x4o.o2o.fc18.zero33.FCDotAPL0127DashP7A;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotBYD1604DashP8H;
|
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.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.
|
/// 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
|
/// Character Dough Cake
|
||||||
FC_CDC1604_P6(0, 64, FCDotCDC1604DashP6.values()),
|
FC_CDC1604_P6(0, 64, FCDotCDC1604DashP6.values()),
|
||||||
|
|
||||||
/// Direct or Escaped Control
|
/// Direct or Escaped Control
|
||||||
FC_DEC1604_P7(64, 64, FCDotDEC1604DashP7.values()),
|
FC_DEC0127_PX0(64, 27, FCDotDEC0127DashPX0.values()),
|
||||||
|
|
||||||
/// Array Programming Language
|
/// 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
|
/// 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
|
// =========== Allow pie terminators for symbols without escaping
|
||||||
|
|
||||||
|
@ -218,6 +232,7 @@ public enum FourCornerDotCake {
|
||||||
private final int start;
|
private final int start;
|
||||||
private final int stop;
|
private final int stop;
|
||||||
private final FourCornerX00PetitVidePoints[] videPoints;
|
private final FourCornerX00PetitVidePoints[] videPoints;
|
||||||
|
private static final FourCornerDotCake[] VALUES = values();
|
||||||
|
|
||||||
private FourCornerDotCake(int start, int size) {
|
private FourCornerDotCake(int start, int size) {
|
||||||
this(start, size, new FourCornerX00PetitVidePoints[] {});
|
this(start, size, new FourCornerX00PetitVidePoints[] {});
|
||||||
|
@ -280,9 +295,9 @@ public enum FourCornerDotCake {
|
||||||
return videPoints;
|
return videPoints;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<FourCornerDotCake> valueOfInt18(int smurfPaint) {
|
public static Optional<FourCornerDotCake> valueFromCakePoint(int cakePoint) {
|
||||||
for (FourCornerDotCake cakeSlice : values()) {
|
for (FourCornerDotCake cakeSlice : VALUES) {
|
||||||
if (cakeSlice.contains(smurfPaint)) {
|
if (cakeSlice.contains(cakePoint)) {
|
||||||
return Optional.of(cakeSlice);
|
return Optional.of(cakeSlice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -152,7 +152,7 @@ public class FourCornerUnicodeDisplay {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (FourCornerDotCake.FC_DEC1604_P7.equals(slice)) {
|
if (FourCornerDotCake.FC_DEC0127_PX0.equals(slice)) {
|
||||||
if (offset < 6) {
|
if (offset < 6) {
|
||||||
output.appendCodePoint(FCDotCDC1604DashP6.escapeSignUnicode(offset));
|
output.appendCodePoint(FCDotCDC1604DashP6.escapeSignUnicode(offset));
|
||||||
return true;
|
return true;
|
||||||
|
@ -201,6 +201,9 @@ public class FourCornerUnicodeDisplay {
|
||||||
if (printedEscape(slice, offset)) {
|
if (printedEscape(slice, offset)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//if (offset < 0 || offset > videPoints.length) {
|
||||||
|
// continue;
|
||||||
|
//}
|
||||||
FourCornerX00PetitVidePoints videPoint = videPoints[offset];
|
FourCornerX00PetitVidePoints videPoint = videPoints[offset];
|
||||||
if (videPoint.isX21()) {
|
if (videPoint.isX21()) {
|
||||||
Arrays.stream(videPoint.toX21().codePoints()).forEach(v -> output.appendCodePoint(v));
|
Arrays.stream(videPoint.toX21().codePoints()).forEach(v -> output.appendCodePoint(v));
|
||||||
|
@ -256,5 +259,15 @@ public class FourCornerUnicodeDisplay {
|
||||||
output.append(";");
|
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 java.util.PrimitiveIterator;
|
||||||
|
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
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.PrimordialOctalOrangeJuiceCord;
|
||||||
import org.x4o.o2o.octal.PrimordialOctalOrangeString;
|
import org.x4o.o2o.octal.PrimordialOctalOrangeString;
|
||||||
|
|
||||||
|
@ -185,8 +185,11 @@ public class FourCornerUnicodeImport {
|
||||||
}
|
}
|
||||||
if (ctx.codePoint >= '0' && ctx.codePoint <= '9') {
|
if (ctx.codePoint >= '0' && ctx.codePoint <= '9') {
|
||||||
if (!FCDotCDC1604DashP6.NX10_J.equals(ctx.cdcNumberTerminator)) {
|
if (!FCDotCDC1604DashP6.NX10_J.equals(ctx.cdcNumberTerminator)) {
|
||||||
ctx.output.add(FCDotCDC1604DashP6.__PIE68);
|
if (ctx.bits == 6) {
|
||||||
ctx.output.add(FCDotCDC1604DashP6.NX10_J);
|
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;
|
ctx.cdcNumberTerminator = FCDotCDC1604DashP6.NX10_J;
|
||||||
}
|
}
|
||||||
int cdcNumberOff = ctx.codePoint - '0';
|
int cdcNumberOff = ctx.codePoint - '0';
|
||||||
|
@ -196,11 +199,11 @@ public class FourCornerUnicodeImport {
|
||||||
}
|
}
|
||||||
if (ctx.cdcNumberTerminator != null) {
|
if (ctx.cdcNumberTerminator != null) {
|
||||||
ctx.cdcNumberTerminator = null;
|
ctx.cdcNumberTerminator = null;
|
||||||
|
//ctx.output.add(FCDotDEC0127DashP7G.ESC_STOP);
|
||||||
if (ctx.bits == 6) {
|
if (ctx.bits == 6) {
|
||||||
ctx.output.add(FCDotCDC1604DashP6.__ESC6);
|
ctx.output.addAll(FCDotDEC0127DashPX0.ESC_STOP.toX06BaklavaPoints());
|
||||||
ctx.output.add(FCDotCDC1604DashP6.__ESC6);
|
|
||||||
} else {
|
} else {
|
||||||
ctx.output.add(FCDotDEC1604DashP7.__ESC_STOP);
|
ctx.output.add(FCDotDEC0127DashPX0.ESC_STOP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -212,8 +215,11 @@ public class FourCornerUnicodeImport {
|
||||||
}
|
}
|
||||||
if (ctx.codePoint >= 'a' && ctx.codePoint <= 'z') {
|
if (ctx.codePoint >= 'a' && ctx.codePoint <= 'z') {
|
||||||
if (!FCDotCDC1604DashP6.NX26_Z.equals(ctx.cdcCaseTerminator)) {
|
if (!FCDotCDC1604DashP6.NX26_Z.equals(ctx.cdcCaseTerminator)) {
|
||||||
ctx.output.add(FCDotCDC1604DashP6.__PIE68);
|
if (ctx.bits == 6) {
|
||||||
ctx.output.add(FCDotCDC1604DashP6.NX26_Z);
|
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;
|
ctx.cdcCaseTerminator = FCDotCDC1604DashP6.NX26_Z;
|
||||||
}
|
}
|
||||||
int cdcNumberOff = ctx.codePoint - 'a';
|
int cdcNumberOff = ctx.codePoint - 'a';
|
||||||
|
@ -224,10 +230,9 @@ public class FourCornerUnicodeImport {
|
||||||
if (ctx.cdcCaseTerminator != null) {
|
if (ctx.cdcCaseTerminator != null) {
|
||||||
ctx.cdcCaseTerminator = null;
|
ctx.cdcCaseTerminator = null;
|
||||||
if (ctx.bits == 6) {
|
if (ctx.bits == 6) {
|
||||||
ctx.output.add(FCDotCDC1604DashP6.__ESC6);
|
ctx.output.addAll(FCDotDEC0127DashPX0.ESC_STOP.toX06BaklavaPoints());
|
||||||
ctx.output.add(FCDotCDC1604DashP6.__ESC6);
|
|
||||||
} else {
|
} else {
|
||||||
ctx.output.add(FCDotDEC1604DashP7.__ESC_STOP);
|
ctx.output.add(FCDotDEC0127DashPX0.ESC_STOP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -27,12 +27,15 @@ import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.PrimitiveIterator;
|
import java.util.PrimitiveIterator;
|
||||||
|
|
||||||
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash11;
|
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash11;
|
||||||
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash20;
|
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.
|
/// Holds conversion maps between four corner int18 and unicode int21 points.
|
||||||
///
|
///
|
||||||
|
@ -100,6 +103,25 @@ public enum FourCornerUnicodeMapper {
|
||||||
return int21ToVide.get(letter);
|
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) {
|
public List<Integer> embedUNI2K(String value) {
|
||||||
List<Integer> result = new ArrayList<>(value.length());
|
List<Integer> result = new ArrayList<>(value.length());
|
||||||
PrimitiveIterator.OfInt i = value.codePoints().iterator();
|
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.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_01.
|
* Pie slice number symbols for NXX_01.
|
||||||
|
@ -47,12 +48,12 @@ public enum FCDotPIE9CDash01 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX01_A, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_02.
|
* Pie slice number symbols for NXX_02.
|
||||||
|
@ -48,12 +49,12 @@ public enum FCDotPIE9CDash02 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX02_B, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX02_B.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_03.
|
* Pie slice number symbols for NXX_03.
|
||||||
|
@ -49,12 +50,12 @@ public enum FCDotPIE9CDash03 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX03_C, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX03_C.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_04.
|
* Pie slice number symbols for NXX_04.
|
||||||
|
@ -50,12 +51,12 @@ public enum FCDotPIE9CDash04 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX04_D, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX04_D.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_05.
|
* Pie slice number symbols for NXX_05.
|
||||||
|
@ -51,12 +52,12 @@ public enum FCDotPIE9CDash05 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX05_E, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX05_E.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_06.
|
* Pie slice number symbols for NXX_06.
|
||||||
|
@ -52,12 +53,12 @@ public enum FCDotPIE9CDash06 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX06_F, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX06_F.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_07.
|
* Pie slice number symbols for NXX_07.
|
||||||
|
@ -53,12 +54,12 @@ public enum FCDotPIE9CDash07 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX07_G, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX07_G.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_08.
|
* Pie slice number symbols for NXX_08.
|
||||||
|
@ -54,12 +55,12 @@ public enum FCDotPIE9CDash08 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX08_H, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX08_H.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_09.
|
* Pie slice number symbols for NXX_09.
|
||||||
|
@ -55,12 +56,12 @@ public enum FCDotPIE9CDash09 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX09_I, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX09_I.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -33,6 +33,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_10.
|
* Pie slice number symbols for NXX_10.
|
||||||
|
@ -61,12 +62,12 @@ public enum FCDotPIE9CDash10 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX10_J, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX10_J.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -79,6 +80,7 @@ public enum FCDotPIE9CDash10 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
return codePoints;
|
return codePoints;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
static public List<FourCornerX06BaklavaPoints> toDecimalsX06(int value) {
|
static public List<FourCornerX06BaklavaPoints> toDecimalsX06(int value) {
|
||||||
return toDecimalsX00(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.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_11.
|
* Pie slice number symbols for NXX_11.
|
||||||
|
@ -57,12 +58,12 @@ public enum FCDotPIE9CDash11 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX11_K, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX11_K.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_12.
|
* Pie slice number symbols for NXX_12.
|
||||||
|
@ -58,12 +59,12 @@ public enum FCDotPIE9CDash12 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX12_L, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX12_L.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_13.
|
* Pie slice number symbols for NXX_13.
|
||||||
|
@ -59,12 +60,12 @@ public enum FCDotPIE9CDash13 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX13_M, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX13_M.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_14.
|
* Pie slice number symbols for NXX_14.
|
||||||
|
@ -60,12 +61,12 @@ public enum FCDotPIE9CDash14 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX14_N, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX14_N.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_15.
|
* Pie slice number symbols for NXX_15.
|
||||||
|
@ -61,12 +62,12 @@ public enum FCDotPIE9CDash15 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX15_O, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX15_O.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_16.
|
* Pie slice number symbols for NXX_16.
|
||||||
|
@ -62,12 +63,12 @@ public enum FCDotPIE9CDash16 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX16_P, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX16_P.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_17.
|
* Pie slice number symbols for NXX_17.
|
||||||
|
@ -63,12 +64,12 @@ public enum FCDotPIE9CDash17 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX17_Q, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX17_Q.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_18.
|
* Pie slice number symbols for NXX_18.
|
||||||
|
@ -64,12 +65,12 @@ public enum FCDotPIE9CDash18 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX18_R, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX18_R.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_19.
|
* Pie slice number symbols for NXX_19.
|
||||||
|
@ -65,12 +66,12 @@ public enum FCDotPIE9CDash19 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX19_S, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX19_S.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_20.
|
* Pie slice number symbols for NXX_20.
|
||||||
|
@ -66,12 +67,12 @@ public enum FCDotPIE9CDash20 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX20_T, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX20_T.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_21.
|
* Pie slice number symbols for NXX_21.
|
||||||
|
@ -67,12 +68,12 @@ public enum FCDotPIE9CDash21 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX21_U, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX21_U.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_22.
|
* Pie slice number symbols for NXX_22.
|
||||||
|
@ -68,12 +69,12 @@ public enum FCDotPIE9CDash22 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX22_V, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX22_V.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_23.
|
* Pie slice number symbols for NXX_23.
|
||||||
|
@ -69,12 +70,12 @@ public enum FCDotPIE9CDash23 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX23_W, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX23_W.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_24.
|
* Pie slice number symbols for NXX_24.
|
||||||
|
@ -70,12 +71,12 @@ public enum FCDotPIE9CDash24 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX24_X, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX24_X.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_25.
|
* Pie slice number symbols for NXX_25.
|
||||||
|
@ -71,12 +72,12 @@ public enum FCDotPIE9CDash25 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX25_Y, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX25_Y.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_26.
|
* Pie slice number symbols for NXX_26.
|
||||||
|
@ -72,12 +73,12 @@ public enum FCDotPIE9CDash26 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX26_Z, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX26_Z.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pie slice number symbols for NXX_27.
|
* Pie slice number symbols for NXX_27.
|
||||||
|
@ -73,12 +74,12 @@ public enum FCDotPIE9CDash27 implements FourCornerX06BaklavaPoints, FourCornerX0
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return muffinPoints();
|
return FCDotDEC0127DashPX0.ESC68_PIE.baklavaPointsPIE9C(FCDotCDC1604DashP6.NX27_AMPERSAND, ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] muffinPoints() {
|
public int[] muffinPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__PIE68.ordinal(), FCDotCDC1604DashP6.NX27_AMPERSAND.ordinal(), FCDotCDC1604DashP6.NX01_A.ordinal() + ordinal()};
|
return baklavaPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
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
|
/// @author Willem Cazander
|
||||||
/// @version 1.0 Jan 1, 2025
|
/// @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
|
/// NEW from dynlog APL
|
||||||
CIRCLE_DOT_XL('⍥'),
|
CIRCLE_DOT_XL('⍥'),
|
||||||
/// NEW from dynlog APL
|
/// NEW from dynlog APL
|
||||||
|
@ -177,82 +107,19 @@ public enum FCDotAPL1604DashP8L implements FourCornerX06BaklavaPoints, FourCorne
|
||||||
DOWN_SHOE('∪'),
|
DOWN_SHOE('∪'),
|
||||||
/// SL400000
|
/// SL400000
|
||||||
UP_SHOE('∩'),
|
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 final int codePoint;
|
||||||
|
|
||||||
private FCDotAPL1604DashP8L(char codePoint) {
|
private FCDotAPL0127DashP7B(char codePoint) {
|
||||||
this.codePoint = codePoint;
|
this.codePoint = codePoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__ESC6.ordinal(), FCDotDEC1604DashP7.__ESC6_APL.ordinal(), ordinal()};
|
return FCDotDEC0127DashPX0.ESC6_APL0127_P7B.baklavaPointsP7(ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -262,7 +129,7 @@ public enum FCDotAPL1604DashP8L implements FourCornerX06BaklavaPoints, FourCorne
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] cakePoints() {
|
public int[] cakePoints() {
|
||||||
return new int[] {FourCornerDotCake.FC_APL1604_P8L.getStart() + ordinal()};
|
return new int[] {FourCornerDotCake.FC_APL0127_P7B.getStart() + ordinal()};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -274,7 +141,7 @@ public enum FCDotAPL1604DashP8L implements FourCornerX06BaklavaPoints, FourCorne
|
||||||
return VALUES.length;
|
return VALUES.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
static public FCDotAPL1604DashP8L indexOf(int idx) {
|
static public FCDotAPL0127DashP7B indexOf(int idx) {
|
||||||
return VALUES[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.FourCornerX18CakePoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
|
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
|
/// @author Willem Cazander
|
||||||
/// @version 1.0 Jan 1, 2025
|
/// @version 1.0 Jan 1, 2025
|
||||||
///
|
///
|
||||||
public enum FCDotBYD1604DashP8H implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints {
|
public enum FCDotBYD0127DashP7D 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'),
|
|
||||||
|
|
||||||
// 32 chars are CP/M Plus aligned
|
// 32 chars are CP/M Plus aligned
|
||||||
|
|
||||||
|
@ -69,58 +66,18 @@ public enum FCDotBYD1604DashP8H implements FourCornerX06BaklavaPoints, FourCorne
|
||||||
BOX1_9('┘'),
|
BOX1_9('┘'),
|
||||||
BOX1_A('─'),
|
BOX1_A('─'),
|
||||||
BOX1_B('┴'),
|
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 final int codePoint;
|
||||||
|
|
||||||
private FCDotBYD1604DashP8H(char codePoint) {
|
private FCDotBYD0127DashP7D(char codePoint) {
|
||||||
this.codePoint = codePoint;
|
this.codePoint = codePoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] baklavaPoints() {
|
public int[] baklavaPoints() {
|
||||||
return new int[] {FCDotCDC1604DashP6.__ESC6.ordinal(), FCDotDEC1604DashP7.__ESC6_BYD.ordinal(), ordinal()};
|
return FCDotDEC0127DashPX0.ESC6_BYD0127_P7D.baklavaPointsP7(ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -130,7 +87,7 @@ public enum FCDotBYD1604DashP8H implements FourCornerX06BaklavaPoints, FourCorne
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] cakePoints() {
|
public int[] cakePoints() {
|
||||||
return new int[] {FourCornerDotCake.FC_BYD1604_P8H.getStart() + ordinal()};
|
return new int[] {FourCornerDotCake.FC_BYD0127_P7D.getStart() + ordinal()};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -142,7 +99,7 @@ public enum FCDotBYD1604DashP8H implements FourCornerX06BaklavaPoints, FourCorne
|
||||||
return VALUES.length;
|
return VALUES.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
static public FCDotBYD1604DashP8H indexOf(int idx) {
|
static public FCDotBYD0127DashP7D indexOf(int idx) {
|
||||||
return VALUES[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&
|
// LMNO PQRS TUVW XYZ&
|
||||||
|
|
||||||
/// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers.
|
/// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers.
|
||||||
__NUL('\u0000'),
|
_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.
|
/// Escape to direct control codes for 6 bit systems requires an sequence of 3 escapes.
|
||||||
/// Example ascii "012" is
|
_ESC6_X1('\u0001'),
|
||||||
/// 012 = __PIE NX10_J NX01_A NX02_B NX02_C
|
_ESC6_X2('\u0002'),
|
||||||
__PIE68('\u0001'),
|
_ESC6_X3('\u0003'),
|
||||||
/// 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'),
|
|
||||||
_NEWLINE('\n'),
|
_NEWLINE('\n'),
|
||||||
_SPACE(' '),
|
_SPACE(' '),
|
||||||
QUESTION('?'),
|
QUESTION('?'),
|
||||||
|
@ -160,6 +155,10 @@ public enum FCDotCDC1604DashP6 implements FourCornerX06BaklavaPoints, FourCorner
|
||||||
return VALUES[idx];
|
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) {
|
static public char escapeSignUnicode(int idx) {
|
||||||
if (idx == 0) {
|
if (idx == 0) {
|
||||||
return '␀';
|
return '␀';
|
||||||
|
|
|
@ -22,87 +22,116 @@
|
||||||
*/
|
*/
|
||||||
package org.x4o.o2o.fc18.zero33;
|
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.FourCornerDotCake;
|
||||||
import org.x4o.o2o.fc18.FourCornerX06BaklavaPoints;
|
import org.x4o.o2o.fc18.FourCornerX06BaklavaPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
|
||||||
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
|
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.
|
* NOTE: Only escapes starting with _ESC6_X3 are allowed to embed in a escape sequence.
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
*
|
||||||
* @author Willem Cazander
|
* @author Willem Cazander
|
||||||
* @version 1.0 Dec 24, 2024
|
* @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.
|
// =========== External argumented escape sequence, always has closed ending. (MUST terminate with ESC_SEQ_SALAH)
|
||||||
__NUL_DEC,
|
|
||||||
/// On 6 bit escape to the APL baklava for single char.
|
/// _ESC6_X1 _ESC6_X1 _ESC6_X1
|
||||||
__ESC6_APL,
|
_ESC_USER_1,
|
||||||
/// On 6 bit escape to the BYD baklave for single char.
|
/// _ESC6_X1 _ESC6_X1 _ESC6_X2
|
||||||
__ESC6_BYD,
|
_ESC_USER_2,
|
||||||
/// Duel escape stops the escaped __PIE68 or __NCR68 escape sequence data mode.
|
/// _ESC6_X1 _ESC6_X1 _ESC6_X3
|
||||||
/// VT-100 Manual: "ESC also cancels any escape sequence".
|
_ESC_USER_3,
|
||||||
__ESC_STOP,
|
/// _ESC6_X1 _ESC6_X2 _ESC6_X1
|
||||||
/// On 6/8 bit escape to 18 bit four corner cake points.
|
_ESC_USER_4,
|
||||||
/// Stream per six octals as CDC chars in NX01_A to NX08_H, until any out of range P6.
|
/// _ESC6_X1 _ESC6_X2 _ESC6_X2
|
||||||
__ESC68_FC18,
|
_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++
|
/// 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;
|
/// Using dark mode nether requires 18 bit cake points as we embed 15 bit data point in the cake;
|
||||||
///
|
///
|
||||||
/// __ESC18_NETHER VT_RAKA_AT
|
/// __ESC18_NETHER
|
||||||
/// + ?slug + ?VT_RAKA_AT (None or 72 to 576 bit Número2 Lingua tree key per 72 bit slug)
|
/// + ?slug + ?ESC_SEQ_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)
|
/// + ?slug + ?ESC_SEQ_RAKA_AT (Up to 8 slug arguments to have max key)
|
||||||
/// + VT_SALAH + data-block as FC_NETHER in 15 bit embedded octals
|
/// + 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 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.
|
/// 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.
|
/// 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.
|
// =========== Embeddable sequences, with open or manual stopped or auto stopped ending. (stop on out of range)
|
||||||
VT_RAKA_AT,
|
|
||||||
/// VT-NX01 = __ESC6 ! = End of escape command sequence.
|
|
||||||
VT_SALAH,
|
|
||||||
|
|
||||||
DEC_TAG_CURLY_LEFT,
|
/// _ESC6_X3 _ESC6_X1 _ESC6_X1
|
||||||
DEC_TAG_CURLY_RIGHT,
|
ESC6_APL0127_P7A,
|
||||||
/// ANSI C1 char [ = CSI = Control Sequence Introducer
|
/// _ESC6_X3 _ESC6_X1 _ESC6_X2
|
||||||
RESERVED_ANSI_CSI,
|
ESC6_APL0127_P7B,
|
||||||
UNDEFINED__TAG_SQUARE_RIGHT,
|
/// _ESC6_X3 _ESC6_X1 _ESC6_X3
|
||||||
UNDEFINED__TAG_ROUND_LEFT,
|
ESC6_APL0127_P7C,
|
||||||
UNDEFINED__TAG_ROUND_RIGHT,
|
/// _ESC6_X3 _ESC6_X2 _ESC6_X1
|
||||||
UNDEFINED__TAG_COMPARE_LEFT,
|
ESC6_BYD0127_P7D,
|
||||||
UNDEFINED__TAG_COMPARE_RIGHT,
|
/// _ESC6_X3 _ESC6_X2 _ESC6_X2
|
||||||
UNDEFINED___TILDE,
|
ESC6_BYD0127_P7E,
|
||||||
UNDEFINED___PLUS,
|
/// _ESC6_X3 _ESC6_X2 _ESC6_X3
|
||||||
UNDEFINED___MINUS,
|
ESC6_BYD0127_P7F,
|
||||||
UNDEFINED___ASTERISK,
|
/// _ESC6_X3 _ESC6_X3 _ESC6_X1
|
||||||
UNDEFINED___COMMA,
|
/// Select packed pie terminator symbol on 6 and 8 bit systems.
|
||||||
UNDEFINED___DOT,
|
/// A = 1, first P6 is terminator select, than next P6 _A++ select pie part 1-27, until other P6 stops it.
|
||||||
UNDEFINED___COLON,
|
/// Example ascii "012" is
|
||||||
UNDEFINED___SEMICOLON,
|
/// 012 = __PIE NX10_J NX01_A NX02_B NX02_C
|
||||||
UNDEFINED___APOSTROPHE,
|
ESC68_PIE,
|
||||||
UNDEFINED___QUOTATION,
|
/// _ESC6_X3 _ESC6_X3 _ESC6_X2
|
||||||
UNDEFINED___BACKTICK,
|
/// Select packed pie terminator number for 6 and 8 bit systems.
|
||||||
UNDEFINED___CARET,
|
/// First NXX P6 is terminator select, than next NXX P6 are values, until out of range.
|
||||||
UNDEFINED___EQUALS,
|
ESC68_NCR,
|
||||||
UNDEFINED___HASH,
|
/// _ESC6_X3 _ESC6_X3 _ESC6_X3
|
||||||
UNDEFINED___DOLLAR,
|
/// An optional triple escape stops the open ended escape sequence.
|
||||||
UNDEFINED___PERCENT,
|
/// VT-100 Manual: "ESC also cancels any escape sequence".
|
||||||
UNDEFINED__BAR_VERTICAL,
|
ESC_STOP,
|
||||||
UNDEFINED__BAR_UNDER,
|
|
||||||
UNDEFINED__BAR_V_LEFT,
|
/*
|
||||||
UNDEFINED__BAR_V_RIGHT,
|
|
||||||
UNDEFINED__AT,
|
|
||||||
|
|
||||||
/// VT-NX01 = __ESC6 A + ?num + VT_NX01_EXECUTE = Cursor one or X up
|
/// VT-NX01 = __ESC6 A + ?num + VT_NX01_EXECUTE = Cursor one or X up
|
||||||
NX_CURSOR_UP,
|
NX_CURSOR_UP,
|
||||||
|
@ -129,17 +158,6 @@ public enum FCDotDEC1604DashP7 implements FourCornerX06BaklavaPoints, FourCorner
|
||||||
OLD_MSX_INSERT_LINE,
|
OLD_MSX_INSERT_LINE,
|
||||||
/// VT-52 = ESC M = Delete line
|
/// VT-52 = ESC M = Delete line
|
||||||
OLD_MSX_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
|
/// 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,
|
NX_CURSOR_GOTO,
|
||||||
|
@ -176,7 +194,7 @@ public enum FCDotDEC1604DashP7 implements FourCornerX06BaklavaPoints, FourCorner
|
||||||
/// -9 = Pink alert;
|
/// -9 = Pink alert;
|
||||||
/// Security or intruder alert.
|
/// Security or intruder alert.
|
||||||
NX_BELL,
|
NX_BELL,
|
||||||
|
*/
|
||||||
// MSX is simple VT-52 for reference see https://www.msx.org/wiki/MSX_Characters_and_Control_Codes#Escape_codes
|
// 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;
|
// ANSI CSI has dynamic termination;
|
||||||
|
@ -202,25 +220,82 @@ public enum FCDotDEC1604DashP7 implements FourCornerX06BaklavaPoints, FourCorner
|
||||||
// C1 char X = SOS = Start Of String
|
// C1 char X = SOS = Start Of String
|
||||||
;
|
;
|
||||||
|
|
||||||
static final private FCDotDEC1604DashP7[] VALUES = values(); // values() is slow method
|
private FCDotDEC0127DashPX0() {
|
||||||
|
|
||||||
private FCDotDEC1604DashP7() {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAlias(FCDotCDC1604DashP6 cdc) {
|
public boolean isEmbeddable() {
|
||||||
if (cdc == null) {
|
if (ordinal() >= ESC6_APL0127_P7A.ordinal()) {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
return cdc.ordinal() == ordinal();
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FCDotCDC1604DashP6 toAlias() {
|
public boolean isExternal() {
|
||||||
return FCDotCDC1604DashP6.indexOf(ordinal());
|
if (ordinal() <= __ESC_RESERVED_A9.ordinal()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============ 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
|
@Override
|
||||||
public int[] baklavaPoints() {
|
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
|
@Override
|
||||||
|
@ -230,14 +305,13 @@ public enum FCDotDEC1604DashP7 implements FourCornerX06BaklavaPoints, FourCorner
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] cakePoints() {
|
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() {
|
public static FCDotDEC0127DashPX0 valueOf(FCDotCDC1604DashP6 msb, FCDotCDC1604DashP6 csb, FCDotCDC1604DashP6 lsb) {
|
||||||
return VALUES.length;
|
int idx = (msb.ordinal() - FCDotCDC1604DashP6._ESC6_X1.ordinal()) * 9;
|
||||||
}
|
idx += (csb.ordinal() - FCDotCDC1604DashP6._ESC6_X1.ordinal()) * 3;
|
||||||
|
idx += (lsb.ordinal() - FCDotCDC1604DashP6._ESC6_X1.ordinal());
|
||||||
static public FCDotDEC1604DashP7 indexOf(int idx) {
|
return FCDotDEC0127DashPX0.values()[idx];
|
||||||
return VALUES[idx];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -24,13 +24,13 @@ package org.x4o.o2o.fc18.zion7;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/// Handles the lexer salah sequence strobes.
|
/// Handles the lexer salah sequence strobes.
|
||||||
///
|
///
|
||||||
/// @author Willem Cazander
|
/// @author Willem Cazander
|
||||||
/// @version 1.0 Jan 11, 2025
|
/// @version 1.0 Jan 11, 2025
|
||||||
public interface FourCornerZion7SalahSequence extends FourCornerZion7Candlelier {
|
public interface FourCornerZion7SalahSequence extends FourCornerZion7Candlelier {
|
||||||
|
|
||||||
void strobeSalahRaka(Integer cakePoint);
|
void strobeSalahSequence(FCDotDEC0127DashPX0 type, List<List<Integer>> arguments);
|
||||||
|
|
||||||
void strobeSalahRaketSequence(List<List<Integer>> arguments);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,12 +27,11 @@ import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
import org.x4o.o2o.fc18.FourCornerDotCake;
|
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.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.
|
/// 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 boolean handlerEscape;
|
||||||
private final FourCornerZion7Candlelier handler;
|
private final FourCornerZion7Candlelier handler;
|
||||||
private final FourCornerZion7AlphaOmega handlerDocument;
|
private final FourCornerZion7AlphaOmega handlerDocument;
|
||||||
private final FourCornerZion7SalahSequence handlerRocket;
|
private final FourCornerZion7SalahSequence handlerSalahSequence;
|
||||||
private final FourCornerZion7TempleScrolls handlerTempleScrolls;
|
private final FourCornerZion7TempleScrolls handlerTempleScrolls;
|
||||||
private final List<StenoScanner> scanners = new ArrayList<>();
|
private final List<StenoScanner> scanners = new ArrayList<>();
|
||||||
private Iterator<Integer> input = null;
|
private int readLevel = 0;
|
||||||
private Integer cakePoint = null;
|
private Integer cakePoint = null;
|
||||||
private int currLine = 0;
|
private int currLine = 0;
|
||||||
private int currCol = 0;
|
private int currCol = 0;
|
||||||
private FourCornerZionStenoLexerSmoke smokeSignals;
|
private FourCornerZionStenoLexerSmoke smokeSignals;
|
||||||
|
private FourCornerZionStenoLexerFire fireSignals;
|
||||||
|
|
||||||
public FourCornerZionStenoLexer(FourCornerZion7Candlelier handler) {
|
public FourCornerZionStenoLexer(FourCornerZion7Candlelier handler) {
|
||||||
this(handler, true);
|
this(handler, true);
|
||||||
|
@ -65,9 +65,9 @@ public class FourCornerZionStenoLexer {
|
||||||
this.handlerDocument = null;
|
this.handlerDocument = null;
|
||||||
}
|
}
|
||||||
if (handler instanceof FourCornerZion7SalahSequence) {
|
if (handler instanceof FourCornerZion7SalahSequence) {
|
||||||
this.handlerRocket = FourCornerZion7SalahSequence.class.cast(handler);
|
this.handlerSalahSequence = FourCornerZion7SalahSequence.class.cast(handler);
|
||||||
} else {
|
} else {
|
||||||
this.handlerRocket = null;
|
this.handlerSalahSequence = null;
|
||||||
}
|
}
|
||||||
if (handler instanceof FourCornerZion7TempleScrolls) {
|
if (handler instanceof FourCornerZion7TempleScrolls) {
|
||||||
this.handlerTempleScrolls = FourCornerZion7TempleScrolls.class.cast(handler);
|
this.handlerTempleScrolls = FourCornerZion7TempleScrolls.class.cast(handler);
|
||||||
|
@ -78,25 +78,27 @@ public class FourCornerZionStenoLexer {
|
||||||
if (cakeSlice.name().startsWith("__")) {
|
if (cakeSlice.name().startsWith("__")) {
|
||||||
continue; // can't handle reserved, we be reported as
|
continue; // can't handle reserved, we be reported as
|
||||||
}
|
}
|
||||||
if (FourCornerDotCake.FC_CDC1604_P6.equals(cakeSlice)) {
|
if (cakeSlice.getStop() <= 0xFF) {
|
||||||
continue; // handle esc's manual
|
continue; // handle CDC and DEC and muffins manual
|
||||||
}
|
}
|
||||||
if (FourCornerDotCake.FC_DEC1604_P7.equals(cakeSlice)) {
|
if (FourCornerDotCake.FC_UNI2K_11.equals(cakeSlice)) {
|
||||||
continue; // handle esc's manual
|
|
||||||
}
|
|
||||||
if (cakeSlice.name().startsWith("FC_NCR")) {
|
|
||||||
continue; // parse blocks manual
|
continue; // parse blocks manual
|
||||||
}
|
}
|
||||||
if (cakeSlice.name().startsWith("FC_UNI")) {
|
if (FourCornerDotCake.FC_UNI2K_22.equals(cakeSlice)) {
|
||||||
continue; // parse blocks manual
|
continue; // parse blocks manual
|
||||||
}
|
}
|
||||||
if (FourCornerDotCake.FC_NETHER.equals(cakeSlice)) {
|
if (FourCornerDotCake.FC_NETHER.equals(cakeSlice)) {
|
||||||
continue; // merge the nether data to octals manual
|
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 StenoScannerWordCakeSlice(cakeSlice));
|
||||||
}
|
}
|
||||||
this.scanners.add(new StenoScannerCDC());
|
this.scanners.add(new StenoScannerCDCDECMuffin());
|
||||||
this.scanners.add(new StenoScannerDEC());
|
|
||||||
this.scanners.add(new StenoScannerNCR18());
|
this.scanners.add(new StenoScannerNCR18());
|
||||||
this.scanners.add(new StenoScannerUNI21());
|
this.scanners.add(new StenoScannerUNI21());
|
||||||
this.scanners.add(new StenoScannerNether());
|
this.scanners.add(new StenoScannerNether());
|
||||||
|
@ -107,6 +109,11 @@ public class FourCornerZionStenoLexer {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public FourCornerZionStenoLexer withFireSignals(FourCornerZionStenoLexerFire fireSignals) {
|
||||||
|
this.fireSignals = fireSignals;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
private enum ScanResult {
|
private enum ScanResult {
|
||||||
EOF,
|
EOF,
|
||||||
NEXT,
|
NEXT,
|
||||||
|
@ -121,7 +128,7 @@ public class FourCornerZionStenoLexer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private interface StenoScanner {
|
private interface StenoScanner {
|
||||||
ScanResult scan();
|
ScanResult scan(Iterator<Integer> input);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void read(List<Integer> points) {
|
public void read(List<Integer> points) {
|
||||||
|
@ -129,20 +136,29 @@ public class FourCornerZionStenoLexer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void read(Iterator<Integer> points) {
|
public void read(Iterator<Integer> points) {
|
||||||
this.input = Objects.requireNonNull(points);
|
Iterator<Integer> input = Objects.requireNonNull(points);
|
||||||
this.cakePoint = null;
|
readLevel++; // first puts on one, we allow level deep
|
||||||
this.currLine = 0;
|
if (readLevel > 2) {
|
||||||
this.currCol = 0;
|
if (smokeSignals != null) {
|
||||||
if (handlerDocument != null) {
|
smokeSignals.burnRecursive(currLine, currCol);
|
||||||
handlerDocument.strobeDocumentAlpha();
|
}
|
||||||
|
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()) {
|
while (input.hasNext()) {
|
||||||
if (safeNext().isEOF()) {
|
if (safeNext(input).isEOF()) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ScanResult run = ScanResult.DONE;
|
ScanResult run = ScanResult.DONE;
|
||||||
while (run.isDone()) {
|
while (run.isDone()) {
|
||||||
run = parseSections();
|
run = readTokens(input);
|
||||||
}
|
}
|
||||||
if (run.isEOF()) {
|
if (run.isEOF()) {
|
||||||
break;
|
break;
|
||||||
|
@ -151,15 +167,16 @@ public class FourCornerZionStenoLexer {
|
||||||
smokeSignals.burnUnsupported(currLine, currCol, cakePoint);
|
smokeSignals.burnUnsupported(currLine, currCol, cakePoint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (handlerDocument != null) {
|
if (handlerDocument != null && readLevel == 1) {
|
||||||
handlerDocument.strobeDocumentOmega();
|
handlerDocument.strobeDocumentOmega();
|
||||||
}
|
}
|
||||||
|
readLevel--;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ScanResult parseSections() {
|
private ScanResult readTokens(Iterator<Integer> input) {
|
||||||
ScanResult result = ScanResult.NEXT;
|
ScanResult result = ScanResult.NEXT;
|
||||||
for (StenoScanner scanner : scanners) {
|
for (StenoScanner scanner : scanners) {
|
||||||
result = scanner.scan();
|
result = scanner.scan(input);
|
||||||
if (result.isEOF()) {
|
if (result.isEOF()) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -170,31 +187,34 @@ public class FourCornerZionStenoLexer {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ScanResult safeNext() {
|
private ScanResult safeNext(Iterator<Integer> input) {
|
||||||
if (!input.hasNext()) {
|
if (!input.hasNext()) {
|
||||||
return ScanResult.EOF;
|
return ScanResult.EOF;
|
||||||
}
|
}
|
||||||
cakePoint = input.next();
|
cakePoint = input.next();
|
||||||
currCol++;
|
currCol++;
|
||||||
|
if (fireSignals != null) {
|
||||||
|
fireSignals.fireStateColumn(currCol);
|
||||||
|
}
|
||||||
return ScanResult.DONE;
|
return ScanResult.DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ScanResult safeReadCakePoints(int start, int stop, List<Integer> result) {
|
private ScanResult safeReadCakePoints(Iterator<Integer> input, int start, int stop, List<Integer> result) {
|
||||||
return safeReadRange(start, stop, result, false);
|
return safeReadRange(input, start, stop, result, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ScanResult safeReadSliceOffsets(int start, int stop, List<Integer> result) {
|
private ScanResult safeReadSliceOffsets(Iterator<Integer> input, int start, int stop, List<Integer> result) {
|
||||||
return safeReadRange(start, stop, result, true);
|
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) {
|
while (cakePoint >= start && cakePoint <= stop) {
|
||||||
if (offset) {
|
if (offset) {
|
||||||
result.add(cakePoint - start);
|
result.add(cakePoint - start);
|
||||||
} else {
|
} else {
|
||||||
result.add(cakePoint);
|
result.add(cakePoint);
|
||||||
}
|
}
|
||||||
if (safeNext().isEOF()) {
|
if (safeNext(input).isEOF()) {
|
||||||
return ScanResult.EOF;
|
return ScanResult.EOF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,12 +230,12 @@ public class FourCornerZionStenoLexer {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ScanResult scan() {
|
public ScanResult scan(Iterator<Integer> input) {
|
||||||
if (cakeSlice.containsNot(cakePoint)) {
|
if (cakeSlice.containsNot(cakePoint)) {
|
||||||
return ScanResult.NEXT;
|
return ScanResult.NEXT;
|
||||||
}
|
}
|
||||||
List<Integer> result = new ArrayList<>();
|
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()) {
|
if (!result.isEmpty()) {
|
||||||
handler.strobeWords(cakeSlice, result);
|
handler.strobeWords(cakeSlice, result);
|
||||||
}
|
}
|
||||||
|
@ -226,12 +246,12 @@ public class FourCornerZionStenoLexer {
|
||||||
class StenoScannerNether implements StenoScanner {
|
class StenoScannerNether implements StenoScanner {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ScanResult scan() {
|
public ScanResult scan(Iterator<Integer> input) {
|
||||||
if (FourCornerDotCake.FC_NETHER.containsNot(cakePoint)) {
|
if (FourCornerDotCake.FC_NETHER.containsNot(cakePoint)) {
|
||||||
return ScanResult.NEXT;
|
return ScanResult.NEXT;
|
||||||
}
|
}
|
||||||
List<Integer> result = new ArrayList<>();
|
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()) {
|
if (!result.isEmpty()) {
|
||||||
handlePoints(result);
|
handlePoints(result);
|
||||||
}
|
}
|
||||||
|
@ -247,12 +267,12 @@ public class FourCornerZionStenoLexer {
|
||||||
class StenoScannerNCR18 implements StenoScanner {
|
class StenoScannerNCR18 implements StenoScanner {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ScanResult scan() {
|
public ScanResult scan(Iterator<Integer> input) {
|
||||||
if (cakePoint < FourCornerDotCake.FC_NCR1632_XD.getStart() || cakePoint > FourCornerDotCake.FC_NCR1632_XN.getStop()) {
|
if (cakePoint < FourCornerDotCake.FC_NCR1632_XD.getStart() || cakePoint > FourCornerDotCake.FC_NCR1632_XN.getStop()) {
|
||||||
return ScanResult.NEXT;
|
return ScanResult.NEXT;
|
||||||
}
|
}
|
||||||
List<Integer> result = new ArrayList<>();
|
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()) {
|
if (!result.isEmpty()) {
|
||||||
handlePoints(result); // mix of four blocks
|
handlePoints(result); // mix of four blocks
|
||||||
}
|
}
|
||||||
|
@ -290,12 +310,12 @@ public class FourCornerZionStenoLexer {
|
||||||
class StenoScannerUNI21 implements StenoScanner {
|
class StenoScannerUNI21 implements StenoScanner {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ScanResult scan() {
|
public ScanResult scan(Iterator<Integer> input) {
|
||||||
if (cakePoint < FourCornerDotCake.FC_UNI2K_11.getStart() || cakePoint > FourCornerDotCake.FC_UNI2K_22.getStop()) {
|
if (cakePoint < FourCornerDotCake.FC_UNI2K_11.getStart() || cakePoint > FourCornerDotCake.FC_UNI2K_22.getStop()) {
|
||||||
return ScanResult.NEXT;
|
return ScanResult.NEXT;
|
||||||
}
|
}
|
||||||
List<Integer> result = new ArrayList<>();
|
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()) {
|
if (!result.isEmpty()) {
|
||||||
handlePoints(result); // mix of the two unicode blocks pages
|
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;
|
private Integer numberMode = null;
|
||||||
boolean numberPIE = true;
|
private boolean numberPIE = true;
|
||||||
|
private FCDotDEC0127DashPX0 decMode = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ScanResult scan() {
|
public ScanResult scan(Iterator<Integer> input) {
|
||||||
if (FourCornerDotCake.FC_CDC1604_P6.containsNot(cakePoint)) {
|
if (cakePoint < FourCornerDotCake.FC_CDC1604_P6.getStart() || cakePoint > FourCornerDotCake.__MIND_THE_GAP.getStop()) {
|
||||||
return ScanResult.NEXT;
|
return ScanResult.NEXT;
|
||||||
}
|
}
|
||||||
List<Integer> result = new ArrayList<>();
|
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()) {
|
if (!result.isEmpty()) {
|
||||||
handlePoints(result);
|
handlePoints(result);
|
||||||
}
|
}
|
||||||
|
@ -341,33 +362,169 @@ public class FourCornerZionStenoLexer {
|
||||||
numberMode = null;
|
numberMode = null;
|
||||||
numberPIE = true;
|
numberPIE = true;
|
||||||
while (cdc.hasNext()) {
|
while (cdc.hasNext()) {
|
||||||
Integer cdcPoint = cdc.next();
|
Integer muffinPoint = cdc.next();
|
||||||
if (FCDotCDC1604DashP6._NEWLINE.ordinal() == cdcPoint) {
|
// Log state changes
|
||||||
|
if (FCDotCDC1604DashP6._NEWLINE.ordinal() == muffinPoint) {
|
||||||
currLine++;
|
currLine++;
|
||||||
if (smokeSignals != null) {
|
currCol = 0;
|
||||||
smokeSignals.burnNewLine();
|
if (fireSignals != null) {
|
||||||
|
fireSignals.fireStateLine(currLine);
|
||||||
|
fireSignals.fireStateColumn(currCol);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Handle 8 and 18 bit direct cake points
|
||||||
|
if (FourCornerDotCake.FC_APL0127_P7A.contains(muffinPoint)) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_APL0127_P7A, List.of(muffinPoint));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (FourCornerDotCake.FC_APL0127_P7B.contains(muffinPoint)) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_APL0127_P7B, List.of(muffinPoint));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (FourCornerDotCake.FC_APL0127_P7C.contains(muffinPoint)) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_APL0127_P7C, List.of(muffinPoint));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (FourCornerDotCake.FC_BYD0127_P7D.contains(muffinPoint)) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7D, List.of(muffinPoint));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (FourCornerDotCake.FC_BYD0127_P7E.contains(muffinPoint)) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7E, List.of(muffinPoint));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (FourCornerDotCake.FC_BYD0127_P7F.contains(muffinPoint)) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7F, List.of(muffinPoint));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (FourCornerDotCake.__MIND_THE_GAP.contains(muffinPoint)) {
|
||||||
|
if (smokeSignals != null) {
|
||||||
|
smokeSignals.burnUnsupported(currLine, currCol, cakePoint);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (handlerEscape) {
|
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 {
|
} 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) {
|
private FCDotDEC0127DashPX0 readEscape6(Iterator<Integer> cdc, Integer cdcPoint) {
|
||||||
if (FCDotCDC1604DashP6.__ESC6.ordinal() == cdcPoint) {
|
// Read 8 or 18 bit Direct Escape Code
|
||||||
if (!cdc.hasNext()) {
|
if (FourCornerDotCake.FC_DEC0127_PX0.contains(cdcPoint)) {
|
||||||
return;
|
return FCDotDEC0127DashPX0.values()[cdcPoint - FourCornerDotCake.FC_DEC0127_PX0.getStart()];
|
||||||
}
|
}
|
||||||
FCDotDEC1604DashP7 decCode = FCDotDEC1604DashP7.indexOf(cdc.next());
|
// 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
|
numberMode = null; // out of range, thus stop
|
||||||
Integer handled = handleEscape6(decCode, cdc);
|
decMode = readEscape6(cdc, cdcPoint);
|
||||||
if (handled == null) {
|
if (decMode == null) {
|
||||||
|
if (smokeSignals != null) {
|
||||||
|
smokeSignals.burnInvalidEscape(currLine, currCol, cdcPoint);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cdcPoint = handled; // out of range, is back to normal
|
if (decMode == FCDotDEC0127DashPX0.ESC68_PIE || decMode == FCDotDEC0127DashPX0.ESC68_NCR) {
|
||||||
|
if (!cdc.hasNext()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
numberMode = cdc.next();
|
||||||
|
numberPIE = decMode == FCDotDEC0127DashPX0.ESC68_PIE; // is false for NCR
|
||||||
|
if (numberMode < FCDotCDC1604DashP6.NX01_A.ordinal()) {
|
||||||
|
cdcPoint = numberMode; // print char
|
||||||
|
numberMode = null; // invalid selector, thus stop
|
||||||
|
} else {
|
||||||
|
if (!cdc.hasNext()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cdcPoint = cdc.next(); // fetch next letter, for number mode
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
boolean modeDone = readDECMode(cdc);
|
||||||
|
if (modeDone) {
|
||||||
|
return; // fetch next
|
||||||
|
}
|
||||||
|
if (!cdc.hasNext()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cdcPoint = cdc.next(); // is used by readEscape6, thus read again
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Escape without body and new escape ...
|
||||||
|
if (FCDotCDC1604DashP6.isEscape6(cdcPoint) || FourCornerDotCake.FC_DEC0127_PX0.contains(cdcPoint)) {
|
||||||
|
//goto next_escape; TODO: add extra loop to remove stack here...
|
||||||
|
handleCDCDEC(cdc, cdcPoint, startMode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (decMode == FCDotDEC0127DashPX0.ESC6_APL0127_P7A) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_APL0127_P7A, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (decMode == FCDotDEC0127DashPX0.ESC6_APL0127_P7B) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_APL0127_P7B, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (decMode == FCDotDEC0127DashPX0.ESC6_APL0127_P7C) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_APL0127_P7C, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (decMode == FCDotDEC0127DashPX0.ESC6_BYD0127_P7D) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7D, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (decMode == FCDotDEC0127DashPX0.ESC6_BYD0127_P7E) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7E, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (decMode == FCDotDEC0127DashPX0.ESC6_BYD0127_P7F) {
|
||||||
|
handler.strobeWords(FourCornerDotCake.FC_BYD0127_P7F, List.of(cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (decMode == FCDotDEC0127DashPX0.ESC_STOP) {
|
||||||
|
decMode = null;
|
||||||
|
numberMode = null; // stop requested, print normal
|
||||||
}
|
}
|
||||||
if (numberMode != null && (cdcPoint > numberMode)) {
|
if (numberMode != null && (cdcPoint > numberMode)) {
|
||||||
numberMode = null; // out of range
|
numberMode = null; // out of range
|
||||||
|
@ -375,21 +532,15 @@ public class FourCornerZionStenoLexer {
|
||||||
if (numberMode != null && (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal())) {
|
if (numberMode != null && (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal())) {
|
||||||
numberMode = null; // below index 1 is end number mode
|
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) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
if (numberPIE) {
|
if (numberPIE) {
|
||||||
|
@ -405,75 +556,108 @@ public class FourCornerZionStenoLexer {
|
||||||
handler.strobeNCR1632(denominator, numerator);
|
handler.strobeNCR1632(denominator, numerator);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
private boolean readDECMode(Iterator<Integer> cdc) {
|
||||||
class StenoScannerDEC implements StenoScanner {
|
for (FCDotDEC0127DashPX0 salahMode : FCDotDEC0127DashPX0.values()) {
|
||||||
|
if (!salahMode.isExternal()) {
|
||||||
@Override
|
continue;
|
||||||
public ScanResult scan() {
|
}
|
||||||
if (FourCornerDotCake.FC_DEC1604_P7.containsNot(cakePoint)) {
|
if (salahMode.equals(decMode)) {
|
||||||
return ScanResult.NEXT;
|
if (salahMode.name().startsWith("__")) {
|
||||||
}
|
if (smokeSignals != null) {
|
||||||
Integer decPoint = cakePoint - FourCornerDotCake.FC_DEC1604_P7.getLength();
|
smokeSignals.burnInvalidSalah(currLine, currCol);
|
||||||
FCDotDEC1604DashP7 decCode = FCDotDEC1604DashP7.indexOf(decPoint);
|
}
|
||||||
if (handlerEscape) {
|
return false;
|
||||||
//numberMode = null; // out of range, thus stop
|
}
|
||||||
Integer handled = handleEscape6(decCode, input);
|
List<List<Integer>> args = new ArrayList<>();
|
||||||
if (handled == null) {
|
scanSalahRakaAt(cdc, args);
|
||||||
return safeNext();
|
if (!args.isEmpty() && handlerSalahSequence != null) {
|
||||||
|
handlerSalahSequence.strobeSalahSequence(salahMode, args);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
//cakePoint = handled; // out of range, is back to normal
|
|
||||||
}
|
}
|
||||||
handler.strobeWords(FourCornerDotCake.FC_DEC1604_P7, List.of(decPoint));
|
if (FCDotDEC0127DashPX0.ESC68_FC18.equals(decMode)) {
|
||||||
return safeNext();
|
List<List<Integer>> result = new ArrayList<>();
|
||||||
}
|
scanSalahRakaAt(cdc, result);
|
||||||
}
|
if (!result.isEmpty()) {
|
||||||
|
List<Integer> renderCakePoints = new ArrayList<>();
|
||||||
private Integer handleEscape6(FCDotDEC1604DashP7 decCode, Iterator<Integer> cdc) {
|
for (List<Integer> argu : result) {
|
||||||
if (FCDotDEC1604DashP7.__NUL_DEC.equals(decCode)) {
|
int cakePointArgu = 0;
|
||||||
return null;
|
int cakePointIdx = 6;
|
||||||
}
|
for (Integer octal : argu) {
|
||||||
if (FCDotDEC1604DashP7.__ESC6_APL.equals(decCode)) {
|
if (octal < FCDotCDC1604DashP6.NX01_A.ordinal()) {
|
||||||
if (!cdc.hasNext()) {
|
continue;
|
||||||
return null;
|
}
|
||||||
|
if (octal > FCDotCDC1604DashP6.NX08_H.ordinal()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int offset = octal - FCDotCDC1604DashP6.NX01_A.ordinal();
|
||||||
|
cakePointArgu = cakePointArgu + (offset << (cakePointIdx*3));
|
||||||
|
cakePointIdx--;
|
||||||
|
if (cakePointIdx < 0) {
|
||||||
|
renderCakePoints.add(cakePointArgu);
|
||||||
|
cakePointIdx = 6;
|
||||||
|
cakePointArgu = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
read(renderCakePoints);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
FCDotAPL1604DashP8L aplCode = FCDotAPL1604DashP8L.indexOf(cdc.next());
|
return false;
|
||||||
handler.strobeWords(FourCornerDotCake.FC_APL1604_P8L, List.of(aplCode.ordinal()));
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
if (FCDotDEC1604DashP7.__ESC6_BYD.equals(decCode)) {
|
|
||||||
if (!cdc.hasNext()) {
|
private ScanResult scanSalahRakaAt(Iterator<Integer> input, List<List<Integer>> result) {
|
||||||
return null;
|
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;
|
||||||
|
}
|
||||||
|
if (FCDotDEC0127DashPX0.ESC_SEQ_SALAH.equals(embedESC)) {
|
||||||
|
result.add(argu);
|
||||||
|
return ScanResult.DONE; // 6/8/18 bits are DONE
|
||||||
|
}
|
||||||
|
if (FCDotDEC0127DashPX0.ESC_SEQ_RAKA_AT.equals(embedESC)) {
|
||||||
|
result.add(argu);
|
||||||
|
argu = new ArrayList<>();
|
||||||
|
if (safeNext(input).isEOF()) {
|
||||||
|
return ScanResult.EOF;
|
||||||
|
}
|
||||||
|
continue; // Next argument
|
||||||
|
}
|
||||||
|
if (!embedESC.isEmbeddable()) {
|
||||||
|
if (smokeSignals != null) {
|
||||||
|
smokeSignals.burnInvalidEscape(currLine, currCol, cdcPoint);
|
||||||
|
}
|
||||||
|
result.clear();
|
||||||
|
return ScanResult.NEXT;
|
||||||
|
}
|
||||||
|
handleCDCDEC(input, cdcPoint, embedESC);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
argu.add(cdcPoint);
|
||||||
}
|
}
|
||||||
FCDotBYD1604DashP8H bydCode = FCDotBYD1604DashP8H.indexOf(cdc.next());
|
if (smokeSignals != null) {
|
||||||
handler.strobeWords(FourCornerDotCake.FC_BYD1604_P8H, List.of(bydCode.ordinal()));
|
smokeSignals.burnInvalidSalah(currLine, currCol);
|
||||||
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
|
result.clear();
|
||||||
// TODO: eat header and eat data, as we can't display it
|
return ScanResult.NEXT;
|
||||||
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
|
/// @version 1.0 Jan 12, 2025
|
||||||
public interface FourCornerZionStenoLexerSmoke {
|
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.assertNotNull(v);
|
||||||
Assertions.assertTrue(v.getStart() <= v.getStop(), "Start is larger than stop in: " + v.name());
|
Assertions.assertTrue(v.getStart() <= v.getStop(), "Start is larger than stop in: " + v.name());
|
||||||
sizeTotal += v.getLength();
|
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);
|
Assertions.assertEquals(262144, sizeTotal);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash26;
|
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash26;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
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.
|
* Tests four corner displayed as unicode.
|
||||||
|
@ -45,7 +45,7 @@ public class FourCornerUnicodeDisplayTest {
|
||||||
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
||||||
cdc.add(FCDotCDC1604DashP6.NX24_X); // = X
|
cdc.add(FCDotCDC1604DashP6.NX24_X); // = X
|
||||||
cdc.add(FCDotCDC1604DashP6.EQUALS);
|
cdc.add(FCDotCDC1604DashP6.EQUALS);
|
||||||
cdc.add(FCDotCDC1604DashP6.__NCR68);
|
cdc.addAll(FCDotDEC0127DashPX0.ESC68_NCR.toX06BaklavaPoints());
|
||||||
cdc.add(FCDotCDC1604DashP6.NX15_O); // T015
|
cdc.add(FCDotCDC1604DashP6.NX15_O); // T015
|
||||||
cdc.add(FCDotCDC1604DashP6.NX14_N); // NXX_014
|
cdc.add(FCDotCDC1604DashP6.NX14_N); // NXX_014
|
||||||
cdc.add(FCDotCDC1604DashP6.NX05_E); // NXX_005
|
cdc.add(FCDotCDC1604DashP6.NX05_E); // NXX_005
|
||||||
|
@ -56,7 +56,7 @@ public class FourCornerUnicodeDisplayTest {
|
||||||
cdc.add(FCDotCDC1604DashP6._NEWLINE);
|
cdc.add(FCDotCDC1604DashP6._NEWLINE);
|
||||||
|
|
||||||
Assertions.assertEquals("X=¹⁴/₁₅⁵/₁₅⁷/₁₅¹⁵/₁₅⁴/₁₅;\n", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
|
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
|
@Test
|
||||||
|
@ -99,27 +99,27 @@ public class FourCornerUnicodeDisplayTest {
|
||||||
cdc.add(FCDotCDC1604DashP6.NX03_C);
|
cdc.add(FCDotCDC1604DashP6.NX03_C);
|
||||||
cdc.add(FCDotCDC1604DashP6.NX04_D);
|
cdc.add(FCDotCDC1604DashP6.NX04_D);
|
||||||
cdc.add(FCDotCDC1604DashP6.DOT);
|
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.NX26_Z); // select lower case
|
||||||
cdc.add(FCDotCDC1604DashP6.NX10_J);
|
cdc.add(FCDotCDC1604DashP6.NX10_J);
|
||||||
cdc.add(FCDotCDC1604DashP6.NX11_K);
|
cdc.add(FCDotCDC1604DashP6.NX11_K);
|
||||||
cdc.add(FCDotCDC1604DashP6.NX12_L);
|
cdc.add(FCDotCDC1604DashP6.NX12_L);
|
||||||
cdc.add(FCDotCDC1604DashP6.NX13_M);
|
cdc.add(FCDotCDC1604DashP6.NX13_M);
|
||||||
cdc.add(FCDotDEC1604DashP7.__ESC_STOP);
|
cdc.addAll(FCDotDEC0127DashPX0.ESC_STOP.toX06BaklavaPoints());
|
||||||
cdc.add(FCDotCDC1604DashP6.NX15_O);
|
cdc.add(FCDotCDC1604DashP6.NX15_O);
|
||||||
|
|
||||||
Assertions.assertEquals("ab BCD.jklmO", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
|
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
|
@Test
|
||||||
public void testNumberTerminatorOutOfRange() throws Exception {
|
public void testNumberTerminatorOutOfRange() throws Exception {
|
||||||
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
||||||
cdc.add(FCDotCDC1604DashP6.NX24_X); // = X
|
cdc.add(FCDotCDC1604DashP6.NX24_X); // = X
|
||||||
cdc.add(FCDotCDC1604DashP6.__PIE68);
|
cdc.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints());
|
||||||
cdc.add(FCDotCDC1604DashP6.CARET); // ^
|
cdc.add(FCDotCDC1604DashP6.CARET); // ^
|
||||||
cdc.add(FCDotCDC1604DashP6.PERCENT); // = %
|
cdc.add(FCDotCDC1604DashP6.PERCENT); // = %
|
||||||
cdc.add(FCDotCDC1604DashP6.__PIE68);
|
cdc.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints());
|
||||||
cdc.add(FCDotCDC1604DashP6.AT);
|
cdc.add(FCDotCDC1604DashP6.AT);
|
||||||
cdc.add(FCDotCDC1604DashP6.NX11_K); // = K
|
cdc.add(FCDotCDC1604DashP6.NX11_K); // = K
|
||||||
|
|
||||||
|
@ -129,10 +129,10 @@ public class FourCornerUnicodeDisplayTest {
|
||||||
@Test
|
@Test
|
||||||
public void testNumberPieOutOfRange() throws Exception {
|
public void testNumberPieOutOfRange() throws Exception {
|
||||||
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
||||||
cdc.add(FCDotCDC1604DashP6.__PIE68);
|
cdc.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints());
|
||||||
cdc.add(FCDotCDC1604DashP6.NX01_A);
|
cdc.add(FCDotCDC1604DashP6.NX01_A);
|
||||||
cdc.add(FCDotCDC1604DashP6.NX02_B); // B
|
cdc.add(FCDotCDC1604DashP6.NX02_B); // B
|
||||||
cdc.add(FCDotCDC1604DashP6.__PIE68);
|
cdc.addAll(FCDotDEC0127DashPX0.ESC68_PIE.toX06BaklavaPoints());
|
||||||
cdc.add(FCDotCDC1604DashP6.NX10_J);
|
cdc.add(FCDotCDC1604DashP6.NX10_J);
|
||||||
cdc.add(FCDotCDC1604DashP6.NX04_D); // 3
|
cdc.add(FCDotCDC1604DashP6.NX04_D); // 3
|
||||||
cdc.add(FCDotCDC1604DashP6.NX11_K); // K
|
cdc.add(FCDotCDC1604DashP6.NX11_K); // K
|
||||||
|
@ -157,5 +157,15 @@ public class FourCornerUnicodeDisplayTest {
|
||||||
int bitsUTF8 = outputExpected.getBytes(StandardCharsets.UTF_8).length*8;
|
int bitsUTF8 = outputExpected.getBytes(StandardCharsets.UTF_8).length*8;
|
||||||
int bitsFC18 = cdc.size()*18;
|
int bitsFC18 = cdc.size()*18;
|
||||||
Assertions.assertTrue(bitsFC18 < bitsUTF8, "FC18 is not smaller");
|
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.FCDotPIE9CDash10;
|
||||||
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash26;
|
import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash26;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotCDC1604DashP6;
|
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.
|
* Tests four corner unicode import.
|
||||||
|
@ -61,15 +61,17 @@ public class FourCornerUnicodeImportTest {
|
||||||
List<FourCornerX06BaklavaPoints> cdc = FourCornerUnicodeImport.strict().convertToX06("foobar");
|
List<FourCornerX06BaklavaPoints> cdc = FourCornerUnicodeImport.strict().convertToX06("foobar");
|
||||||
Assertions.assertNotNull(cdc);
|
Assertions.assertNotNull(cdc);
|
||||||
Assertions.assertFalse(cdc.isEmpty());
|
Assertions.assertFalse(cdc.isEmpty());
|
||||||
Assertions.assertEquals(8, cdc.size());
|
Assertions.assertEquals(10, cdc.size());
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.__PIE68, cdc.get(0));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(0));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(1));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(1));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(2));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1, cdc.get(2));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(3));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(3));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(4));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(4));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(5));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(5));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(6));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(6));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(7));
|
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);
|
String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc);
|
||||||
Assertions.assertEquals("foobar", out);
|
Assertions.assertEquals("foobar", out);
|
||||||
|
@ -80,17 +82,20 @@ public class FourCornerUnicodeImportTest {
|
||||||
List<FourCornerX06BaklavaPoints> cdc = FourCornerUnicodeImport.strict().convertToX06("fooBAR");
|
List<FourCornerX06BaklavaPoints> cdc = FourCornerUnicodeImport.strict().convertToX06("fooBAR");
|
||||||
Assertions.assertNotNull(cdc);
|
Assertions.assertNotNull(cdc);
|
||||||
Assertions.assertFalse(cdc.isEmpty());
|
Assertions.assertFalse(cdc.isEmpty());
|
||||||
Assertions.assertEquals(10, cdc.size()); // = 60 bit
|
Assertions.assertEquals(13, cdc.size());
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.__PIE68, cdc.get(0));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(0));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(1));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(1));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(2));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1, cdc.get(2));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(3));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(3));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(4));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(4));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.__ESC6, cdc.get(5));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(5));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.__ESC6, cdc.get(6));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(6));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(7));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(7));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(8));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(8));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(9));
|
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);
|
String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc);
|
||||||
Assertions.assertEquals("fooBAR", out);
|
Assertions.assertEquals("fooBAR", out);
|
||||||
|
@ -101,13 +106,13 @@ public class FourCornerUnicodeImportTest {
|
||||||
List<FourCornerX08MuffinPoints> cdc = FourCornerUnicodeImport.strict().convertToX08("fooBAR");
|
List<FourCornerX08MuffinPoints> cdc = FourCornerUnicodeImport.strict().convertToX08("fooBAR");
|
||||||
Assertions.assertNotNull(cdc);
|
Assertions.assertNotNull(cdc);
|
||||||
Assertions.assertFalse(cdc.isEmpty());
|
Assertions.assertFalse(cdc.isEmpty());
|
||||||
Assertions.assertEquals(9, cdc.size()); // = 72 bit
|
Assertions.assertEquals(9, cdc.size());
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.__PIE68, cdc.get(0));
|
Assertions.assertEquals(FCDotDEC0127DashPX0.ESC68_PIE, cdc.get(0));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(1));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX26_Z, cdc.get(1));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(2));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX06_F, cdc.get(2));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(3));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(3));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX15_O, cdc.get(4));
|
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.NX02_B, cdc.get(6));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(7));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(7));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(8));
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX18_R, cdc.get(8));
|
||||||
|
@ -163,17 +168,19 @@ public class FourCornerUnicodeImportTest {
|
||||||
List<FourCornerX06BaklavaPoints> cdc = FourCornerUnicodeImport.strict().convertToX06("01201337");
|
List<FourCornerX06BaklavaPoints> cdc = FourCornerUnicodeImport.strict().convertToX06("01201337");
|
||||||
Assertions.assertNotNull(cdc);
|
Assertions.assertNotNull(cdc);
|
||||||
Assertions.assertFalse(cdc.isEmpty());
|
Assertions.assertFalse(cdc.isEmpty());
|
||||||
Assertions.assertEquals(10, cdc.size());
|
Assertions.assertEquals(12, cdc.size());
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.__PIE68, cdc.get(0));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(0));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdc.get(1));
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X3, cdc.get(1));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(2)); // 0
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1, cdc.get(2));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(3)); // 1
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX10_J, cdc.get(3));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdc.get(4)); // 2
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(4)); // 0
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(5)); // 0
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(5)); // 1
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(6)); // 1
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX03_C, cdc.get(6)); // 2
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(7)); // 3
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(7)); // 0
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX04_D, cdc.get(8)); // 3
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(8)); // 1
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX08_H, cdc.get(9)); // 7
|
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);
|
String out = FourCornerUnicodeDisplay.text().renderFromX06(cdc);
|
||||||
Assertions.assertEquals("01201337", out);
|
Assertions.assertEquals("01201337", out);
|
||||||
|
@ -185,7 +192,7 @@ public class FourCornerUnicodeImportTest {
|
||||||
Assertions.assertNotNull(cdc);
|
Assertions.assertNotNull(cdc);
|
||||||
Assertions.assertFalse(cdc.isEmpty());
|
Assertions.assertFalse(cdc.isEmpty());
|
||||||
Assertions.assertEquals(10, cdc.size());
|
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.NX10_J, cdc.get(1));
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(2)); // 0
|
Assertions.assertEquals(FCDotCDC1604DashP6.NX01_A, cdc.get(2)); // 0
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX02_B, cdc.get(3)); // 1
|
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.nio.file.StandardOpenOption;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotAPL1604DashP8L;
|
import org.x4o.o2o.fc18.zero33.FCDotAPL0127DashP7A;
|
||||||
import org.x4o.o2o.fc18.zero33.FCDotBYD1604DashP8H;
|
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.FCDotCDC1604DashP6;
|
||||||
|
import org.x4o.o2o.fc18.zero33.FCDotDEC0127DashPX0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writes fc example markdown document.
|
* Writes fc example markdown document.
|
||||||
|
@ -70,25 +76,25 @@ public class FourCornerWriteExampleMD {
|
||||||
writeTableEnd(buf);
|
writeTableEnd(buf);
|
||||||
buf.append("<br><br>\n");
|
buf.append("<br><br>\n");
|
||||||
|
|
||||||
writeTitle3(buf, "FC.APL1604-S6");
|
int startAPL = FourCornerDotCake.FC_APL0127_P7A.getStart();
|
||||||
writeTableStart17(buf);
|
writeTitle3(buf, "FC.APL0127-P7(ABC)");
|
||||||
writeAPL(buf, 0x00);
|
writeTableStart28(buf);
|
||||||
writeAPL(buf, 0x10);
|
writeAPL(buf, startAPL + 0, v -> FCDotAPL0127DashP7A.indexOf(v).codePoints()[0]);
|
||||||
writeAPL(buf, 0x20);
|
writeAPL(buf, startAPL + 27, v -> FCDotAPL0127DashP7B.indexOf(v).codePoints()[0]);
|
||||||
writeAPL(buf, 0x30);
|
writeAPL(buf, startAPL + 54, v -> FCDotAPL0127DashP7C.indexOf(v).codePoints()[0]);
|
||||||
writeTableEnd(buf);
|
writeTableEnd(buf);
|
||||||
buf.append("<br><br>\n");
|
buf.append("<br><br>\n");
|
||||||
|
|
||||||
writeTitle3(buf, "FC.BYD1604-C6");
|
int startBYD = FourCornerDotCake.FC_BYD0127_P7D.getStart();
|
||||||
writeTableStart17(buf);
|
writeTitle3(buf, "FC.BYD0127-P7(DEF)");
|
||||||
writeBYD(buf, 0x00);
|
writeTableStart28(buf);
|
||||||
writeBYD(buf, 0x10);
|
writeBYD(buf, startBYD + 0, v -> FCDotBYD0127DashP7D.indexOf(v).codePoints()[0]);
|
||||||
writeBYD(buf, 0x20);
|
writeBYD(buf, startBYD + 27, v -> FCDotBYD0127DashP7E.indexOf(v).codePoints()[0]);
|
||||||
writeBYD(buf, 0x30);
|
writeBYD(buf, startBYD + 54, v -> FCDotBYD0127DashP7F.indexOf(v).codePoints()[0]);
|
||||||
writeTableEnd(buf);
|
writeTableEnd(buf);
|
||||||
buf.append("<br><br>\n");
|
buf.append("<br><br>\n");
|
||||||
|
|
||||||
writeTitle3(buf, "FC.PIE9C-XX");
|
writeTitle3(buf, "FC.PIE9C-(01-27)");
|
||||||
writeTableStart28(buf);
|
writeTableStart28(buf);
|
||||||
writePIE(buf, FourCornerDotCake.FC_PIE9C_01);
|
writePIE(buf, FourCornerDotCake.FC_PIE9C_01);
|
||||||
writePIE(buf, FourCornerDotCake.FC_PIE9C_02);
|
writePIE(buf, FourCornerDotCake.FC_PIE9C_02);
|
||||||
|
@ -185,15 +191,16 @@ public class FourCornerWriteExampleMD {
|
||||||
buf.append("</tr>\n");
|
buf.append("</tr>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeAPL(StringBuilder buf, int off) {
|
private void writeAPL(StringBuilder buf, int off, Function<Integer, Integer> conv) {
|
||||||
String prefixHex = Integer.toHexString(0x80 + off).toUpperCase();
|
String prefixHex = Integer.toHexString(off).toUpperCase();
|
||||||
buf.append("<tr>");
|
buf.append("<tr>");
|
||||||
buf.append("<td>U+0000");
|
buf.append("<td>U+0000");
|
||||||
buf.append(prefixHex.charAt(0));
|
buf.append(prefixHex);
|
||||||
buf.append("x</td>");
|
buf.append("x</td>");
|
||||||
for (int i=off; i<16+off;i++) {
|
for (int i=0; i<27;i++) {
|
||||||
FCDotAPL1604DashP8L apl = FCDotAPL1604DashP8L.indexOf(i);
|
//FCDotAPL0127DashP7A apl = c.indexOf(i);
|
||||||
int codePoint = apl.codePoints()[0];
|
//int codePoint = apl.codePoints()[0];
|
||||||
|
int codePoint = conv.apply(i);
|
||||||
buf.append("<td>");
|
buf.append("<td>");
|
||||||
if (codePoint == '\u0000') {
|
if (codePoint == '\u0000') {
|
||||||
buf.append("␀");
|
buf.append("␀");
|
||||||
|
@ -205,15 +212,16 @@ public class FourCornerWriteExampleMD {
|
||||||
buf.append("</tr>\n");
|
buf.append("</tr>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeBYD(StringBuilder buf, int off) {
|
private void writeBYD(StringBuilder buf, int off, Function<Integer, Integer> conv) {
|
||||||
String prefixHex = Integer.toHexString(0xC0 + off).toUpperCase();
|
String prefixHex = Integer.toHexString(off).toUpperCase();
|
||||||
buf.append("<tr>");
|
buf.append("<tr>");
|
||||||
buf.append("<td>U+0000");
|
buf.append("<td>U+0000");
|
||||||
buf.append(prefixHex.charAt(0));
|
buf.append(prefixHex);
|
||||||
buf.append("x</td>");
|
buf.append("x</td>");
|
||||||
for (int i=off; i<16+off;i++) {
|
for (int i=0; i<27;i++) {
|
||||||
FCDotBYD1604DashP8H byd = FCDotBYD1604DashP8H.indexOf(i);
|
//FCDotBYD0127DashP7D byd = FCDotBYD0127DashP7D.indexOf(i);
|
||||||
int codePoint = byd.codePoints()[0];
|
//int codePoint = byd.codePoints()[0];
|
||||||
|
int codePoint = conv.apply(i);
|
||||||
buf.append("<td>");
|
buf.append("<td>");
|
||||||
if (codePoint == '\u0000') {
|
if (codePoint == '\u0000') {
|
||||||
buf.append("␀");
|
buf.append("␀");
|
||||||
|
@ -262,7 +270,10 @@ public class FourCornerWriteExampleMD {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
List<Integer> piNum = new ArrayList<>();
|
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() + t);
|
||||||
piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + i);
|
piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + i);
|
||||||
String char18Str = FourCornerUnicodeDisplay.text().renderFromInt18(piNum);
|
String char18Str = FourCornerUnicodeDisplay.text().renderFromInt18(piNum);
|
||||||
|
|
|
@ -38,10 +38,12 @@ public class FCDotAPL1604DashP8LTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testValues() throws Exception {
|
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;
|
boolean duplicate = false;
|
||||||
Map<Integer,FCDotAPL1604DashP8L> global = new HashMap<>();
|
Map<Integer,FCDotAPL0127DashP7A> global = new HashMap<>();
|
||||||
for (FCDotAPL1604DashP8L v : FCDotAPL1604DashP8L.values()) {
|
for (FCDotAPL0127DashP7A v : FCDotAPL0127DashP7A.values()) {
|
||||||
Assertions.assertNotNull(v);
|
Assertions.assertNotNull(v);
|
||||||
if (global.containsKey(v.codePoints()[0])) {
|
if (global.containsKey(v.codePoints()[0])) {
|
||||||
duplicate = true;
|
duplicate = true;
|
||||||
|
|
|
@ -42,10 +42,10 @@ public class FCDotBYD1604DashP8HTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testValues() throws Exception {
|
public void testValues() throws Exception {
|
||||||
Assertions.assertEquals(64, FCDotBYD1604DashP8H.length());
|
Assertions.assertEquals(27, FCDotBYD0127DashP7D.length());
|
||||||
boolean duplicate = false;
|
boolean duplicate = false;
|
||||||
Map<Integer,FCDotBYD1604DashP8H> global = new HashMap<>();
|
Map<Integer,FCDotBYD0127DashP7D> global = new HashMap<>();
|
||||||
for (FCDotBYD1604DashP8H v : FCDotBYD1604DashP8H.values()) {
|
for (FCDotBYD0127DashP7D v : FCDotBYD0127DashP7D.values()) {
|
||||||
Assertions.assertNotNull(v);
|
Assertions.assertNotNull(v);
|
||||||
if (global.containsKey(v.codePoints()[0])) {
|
if (global.containsKey(v.codePoints()[0])) {
|
||||||
duplicate = true;
|
duplicate = true;
|
||||||
|
@ -60,14 +60,14 @@ public class FCDotBYD1604DashP8HTest {
|
||||||
@Test
|
@Test
|
||||||
public void testDisplay() throws Exception {
|
public void testDisplay() throws Exception {
|
||||||
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
||||||
cdc.add(FCDotBYD1604DashP8H.BOX2_A);
|
cdc.add(FCDotBYD0127DashP7D.BOX2_A);
|
||||||
cdc.add(FCDotBYD1604DashP8H.BOX2_B);
|
cdc.add(FCDotBYD0127DashP7D.BOX2_B);
|
||||||
cdc.add(FCDotBYD1604DashP8H.BOX2_B);
|
cdc.add(FCDotBYD0127DashP7D.BOX2_B);
|
||||||
cdc.add(FCDotBYD1604DashP8H.BOX2_A);
|
cdc.add(FCDotBYD0127DashP7D.BOX2_A);
|
||||||
cdc.add(FCDotBYD1604DashP8H.BOX1_1);
|
cdc.add(FCDotBYD0127DashP7D.BOX1_1);
|
||||||
cdc.add(FCDotBYD1604DashP8H.BOX1_3);
|
cdc.add(FCDotBYD0127DashP7D.BOX1_3);
|
||||||
cdc.add(FCDotBYD1604DashP8H.BOX1_3);
|
cdc.add(FCDotBYD0127DashP7D.BOX1_3);
|
||||||
cdc.add(FCDotBYD1604DashP8H.BOX1_7);
|
cdc.add(FCDotBYD0127DashP7D.BOX1_7);
|
||||||
|
|
||||||
Assertions.assertEquals("═╩╩═╵└└├", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
|
Assertions.assertEquals("═╩╩═╵└└├", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,33 +37,51 @@ import org.x4o.o2o.fc18.pie9c.FCDotPIE9CDash10;
|
||||||
* @author Willem Cazander
|
* @author Willem Cazander
|
||||||
* @version 1.0 Jan 08, 2025
|
* @version 1.0 Jan 08, 2025
|
||||||
*/
|
*/
|
||||||
public class FCDotDEC1604DashP7Test {
|
public class FCDotDEC0127DashP7GTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSize() throws Exception {
|
public void testSize() throws Exception {
|
||||||
Assertions.assertEquals(64, FCDotDEC1604DashP7.length());
|
Assertions.assertEquals(27, FCDotDEC0127DashPX0.values().length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBaklavaSequence() throws Exception {
|
public void testBaklavaSequence() throws Exception {
|
||||||
int[] seq = FCDotDEC1604DashP7.NX_CURSOR_GOTO.baklavaPoints();
|
int[] seq = null;
|
||||||
Assertions.assertEquals(2, seq.length);
|
seq = FCDotDEC0127DashPX0._ESC_USER_1.baklavaPoints();
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.__ESC6.ordinal(), seq[0]);
|
Assertions.assertEquals(3, seq.length);
|
||||||
Assertions.assertEquals(FCDotCDC1604DashP6.NX25_Y.ordinal(), seq[1]);
|
Assertions.assertEquals(FCDotCDC1604DashP6._ESC6_X1.ordinal(), seq[0]);
|
||||||
Assertions.assertEquals(FCDotDEC1604DashP7.NX_BELL.ordinal(), FCDotCDC1604DashP6.NX27_AMPERSAND.ordinal());
|
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
|
@Test
|
||||||
public void testCusorGoto() throws Exception {
|
public void testCusorGoto() throws Exception {
|
||||||
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
||||||
cdc.add(FCDotDEC1604DashP7.NX_CURSOR_GOTO);
|
cdc.add(FCDotDEC0127DashP7G.NX_CURSOR_GOTO);
|
||||||
cdc.add(FCDotDEC1604DashP7.VT_RAKA_AT);
|
cdc.add(FCDotDEC0127DashP7G.VT_RAKA_AT);
|
||||||
cdc.add(FCDotCDC1604DashP6.NX25_Y);
|
cdc.add(FCDotCDC1604DashP6.NX25_Y);
|
||||||
cdc.add(FCDotDEC1604DashP7.VT_RAKA_AT);
|
cdc.add(FCDotDEC0127DashP7G.VT_RAKA_AT);
|
||||||
cdc.addAll(FCDotPIE9CDash10.toDecimalsX06(123));
|
cdc.addAll(FCDotPIE9CDash10.toDecimalsX06(123));
|
||||||
cdc.add(FCDotDEC1604DashP7.VT_RAKA_AT);
|
cdc.add(FCDotDEC0127DashP7G.VT_RAKA_AT);
|
||||||
cdc.addAll(FCDotPIE9CDash10.toDecimalsX06(456));
|
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␃?Y␃?␁JBCD␃?␁JEFG␃!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc));
|
||||||
Assertions.assertEquals("?Y?123?456!", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
|
Assertions.assertEquals("?Y?123?456!", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
|
||||||
|
@ -72,11 +90,12 @@ public class FCDotDEC1604DashP7Test {
|
||||||
@Test
|
@Test
|
||||||
public void testClearTop5Lines() throws Exception {
|
public void testClearTop5Lines() throws Exception {
|
||||||
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
List<FourCornerX06BaklavaPoints> cdc = new ArrayList<>();
|
||||||
cdc.add(FCDotDEC1604DashP7.NX_CLEAR_TOP);
|
cdc.add(FCDotDEC0127DashP7G.NX_CLEAR_TOP);
|
||||||
cdc.add(FCDotDEC1604DashP7.VT_RAKA_AT);
|
cdc.add(FCDotDEC0127DashP7G.VT_RAKA_AT);
|
||||||
cdc.addAll(FCDotPIE9CDash10.toDecimalsX06(5));
|
cdc.addAll(FCDotPIE9CDash10.toDecimalsX06(5));
|
||||||
cdc.add(FCDotDEC1604DashP7.VT_SALAH);
|
cdc.add(FCDotDEC0127DashP7G.VT_SALAH);
|
||||||
|
|
||||||
Assertions.assertEquals("␃E␃?␁JF␃!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc));
|
Assertions.assertEquals("␃E␃?␁JF␃!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
Loading…
Reference in a new issue