Fixed cake offsets in E10 lexer parsing

This commit is contained in:
Willem Cazander 2025-01-24 20:08:08 +01:00
parent f9d4980b0c
commit 34b4761446
2 changed files with 31 additions and 5 deletions

View file

@ -742,7 +742,7 @@ public class FourCornerZionStenoLexer {
decModeReset();
return false;
}
lexer.handler.strobeWord(FourCornerDotCake.FC_AMD0110_SA, cdcPoint);
lexer.handler.strobeWord(FourCornerDotCake.FC_AMD0110_SA, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
return true;
}
if (FCDotDEC0801DashE10.E10_NES0127_9C.equals(cdcDECModeE10)) {
@ -750,7 +750,7 @@ public class FourCornerZionStenoLexer {
decModeReset();
return false;
}
lexer.handler.strobeWord(FourCornerDotCake.FC_NES0127_9C, cdcPoint);
lexer.handler.strobeWord(FourCornerDotCake.FC_NES0127_9C, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
return true;
}
if (FCDotDEC0801DashE10.E10_NXP0103_S3.equals(cdcDECModeE10)) {
@ -758,7 +758,7 @@ public class FourCornerZionStenoLexer {
decModeReset();
return false;
}
lexer.handler.strobeWord(FourCornerDotCake.FC_NXP0103_S3, cdcPoint);
lexer.handler.strobeWord(FourCornerDotCake.FC_NXP0103_S3, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
return true;
}
if (FCDotDEC0801DashE10.E10_UWU0101_S1.equals(cdcDECModeE10)) {
@ -774,7 +774,7 @@ public class FourCornerZionStenoLexer {
decModeReset();
return false;
}
lexer.handler.strobeWord(FourCornerDotCake.FC_ICL0126_9B, cdcPoint);
lexer.handler.strobeWord(FourCornerDotCake.FC_ICL0126_9B, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
return true;
}
if (FCDotDEC0801DashE10.E10_OCE0801_H3.equals(cdcDECModeE10)) {
@ -782,7 +782,7 @@ public class FourCornerZionStenoLexer {
decModeReset();
return false;
}
lexer.handler.strobeWord(FourCornerDotCake.FC_OCE0801_H3, cdcPoint);
lexer.handler.strobeWord(FourCornerDotCake.FC_OCE0801_H3, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
return true;
}
decModeReset();

View file

@ -32,6 +32,7 @@ import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash26;
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D;
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC0801DashE10;
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
@ -143,4 +144,29 @@ public class FourCornerUnicodeDisplayTest {
Assertions.assertEquals("𝘩𝘰𝘪╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
}
@Test
public void testDecE10RangeChecks() throws Exception {
List<FourCornerX06BaklavaPointSequence> cdc = new ArrayList<>();
cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10);
cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1);
cdc.add(FCDotCDC1604DashP6.NX08_H); // H
cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10);
cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1);
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
cdc.add(FCDotCDC1604DashP6.NX15_O); // O
cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10);
cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1);
cdc.add(FCDotDEC2701DashPX0.ESC_STOP);
cdc.add(FCDotCDC1604DashP6.NX09_I); // I
cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10);
cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1);
cdc.add(FCDotCDC1604DashP6.NX01_A); // tab space
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
cdc.add(FCDotCDC1604DashP6.NX08_H); // HOI
cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I);
Assertions.assertEquals("HOI__ __.:=UWU=:.__ __HOI", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
}
}