NX01: Fixed BE in T512/T64 and hinary, WIP printed lingua dial tones
This commit is contained in:
parent
e69a13ec92
commit
7feb638a40
32 changed files with 1060 additions and 626 deletions
|
|
@ -29,5 +29,6 @@
|
|||
/// @author للَّٰهِilLצسُو
|
||||
/// @version ©Δ∞ 仙上主天
|
||||
module jpp.nether.tone {
|
||||
|
||||
exports ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ;
|
||||
exports ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,53 @@ public record NetherToneSlugView(
|
|||
int er0w
|
||||
) {
|
||||
|
||||
public NetherToneSlugView {
|
||||
if (ag1 < 0 || ag1 > 63) { throw new IllegalArgumentException("ag1: " + ag1); }
|
||||
if (ag2 < 0 || ag2 > 63) { throw new IllegalArgumentException("ag2: " + ag2); }
|
||||
if (ag3 < 0 || ag3 > 63) { throw new IllegalArgumentException("ag3: " + ag3); }
|
||||
if (bl0w < 0 || bl0w > 511) { throw new IllegalArgumentException("bl0w: " + bl0w); }
|
||||
if (cr1 < 0 || cr1 > 63) { throw new IllegalArgumentException("cr1: " + cr1); }
|
||||
if (cr2 < 0 || cr2 > 63) { throw new IllegalArgumentException("cr2: " + cr2); }
|
||||
if (cr3 < 0 || cr3 > 63) { throw new IllegalArgumentException("cr3: " + cr3); }
|
||||
if (db1 < 0 || db1 > 63) { throw new IllegalArgumentException("db1: " + db1); }
|
||||
if (db2 < 0 || db2 > 63) { throw new IllegalArgumentException("db2: " + db2); }
|
||||
if (db3 < 0 || db3 > 63) { throw new IllegalArgumentException("db3: " + db3); }
|
||||
if (er0w < 0 || er0w > 511) { throw new IllegalArgumentException("er0w: " + er0w); }
|
||||
}
|
||||
|
||||
private final static String VALUES_3 = "\u05D3\u05D5\u05D6\u05D9\u05E8\u05F0\u05F1\u05F2";
|
||||
private final static String VALUES_6 = "\u05B0\u05B2\u05B3\u05B5\u05B6\u05B7\u05BB\u05BD";
|
||||
private final static String VALUES_9 = "\u0594\u0595\u0598\u059D\u059E\u059F\u05A0\u05A9";
|
||||
private void printNúmero2Lingua6(StringBuilder buf, int value) {
|
||||
buf.appendCodePoint(VALUES_3.codePoints().skip((value >> 3) & 7).findFirst().getAsInt());
|
||||
buf.appendCodePoint(VALUES_6.codePoints().skip((value >> 0) & 7).findFirst().getAsInt());
|
||||
}
|
||||
private void printNúmero2Lingua9(StringBuilder buf, int value) {
|
||||
buf.appendCodePoint(VALUES_3.codePoints().skip((value >> 6) & 7).findFirst().getAsInt());
|
||||
buf.appendCodePoint(VALUES_6.codePoints().skip((value >> 3) & 7).findFirst().getAsInt());
|
||||
buf.appendCodePoint(VALUES_9.codePoints().skip((value >> 0) & 7).findFirst().getAsInt());
|
||||
}
|
||||
|
||||
public String toNúmero2Lingua(String seperator) {
|
||||
StringBuilder buf = new StringBuilder();
|
||||
printNúmero2Lingua6(buf, ag1);buf.append(seperator);
|
||||
printNúmero2Lingua6(buf, ag2);buf.append(seperator);
|
||||
printNúmero2Lingua6(buf, ag3);buf.append(seperator);
|
||||
printNúmero2Lingua9(buf, bl0w);buf.append(seperator);
|
||||
printNúmero2Lingua6(buf, cr1);buf.append(seperator);
|
||||
printNúmero2Lingua6(buf, cr2);buf.append(seperator);
|
||||
printNúmero2Lingua6(buf, cr3);buf.append(seperator);
|
||||
printNúmero2Lingua6(buf, db1);buf.append(seperator);
|
||||
printNúmero2Lingua6(buf, db2);buf.append(seperator);
|
||||
printNúmero2Lingua6(buf, db3);buf.append(seperator);
|
||||
printNúmero2Lingua9(buf, er0w);
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public String toNúmero2Lingua() {
|
||||
return toNúmero2Lingua("");
|
||||
}
|
||||
|
||||
public List<Class<?>> toNetherTones(int idx) {
|
||||
Class<?> qClass = qClass(idx);
|
||||
List<Class<?>> result = new ArrayList<>(11);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
|
||||
package ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Iterator;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
|
@ -43,25 +44,34 @@ public class ModelNetherTones implements KodeGenModel {
|
|||
private final String BASE_PACK = "ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ";
|
||||
|
||||
@Override
|
||||
public String generatorName() {
|
||||
return "nether-tones";
|
||||
public String generatorKey() {
|
||||
return "nether-tone";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildModels(ModelKlassWriter writer) {
|
||||
buildQuadrants(writer, 1, "ᐧᐧᐧ");
|
||||
buildQuadrants(writer, 2, "ᐧᐧᣟ");
|
||||
buildQuadrants(writer, 3, "ᐧᣟᐧ");
|
||||
buildQuadrants(writer, 4, "ᐧᣟᣟ");
|
||||
buildQuadrants(writer, 5, "ᣟᐧᐧ");
|
||||
buildQuadrants(writer, 6, "ᣟᐧᣟ");
|
||||
buildQuadrants(writer, 7, "ᣟᣟᐧ");
|
||||
buildQuadrants(writer, 8, "ᣟᣟᣟ");
|
||||
public String generatorModelHash() {
|
||||
return "15";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildModels(ModelKlassWriter writer) throws IOException {
|
||||
|
||||
// TODO: redo tree again, as a Q slug, should be usable to reuse in any other Qx slug
|
||||
// but that needs generics and than 2 equals interfaces do not match anymore...
|
||||
buildQuadrants(writer, 1);
|
||||
buildQuadrants(writer, 2);
|
||||
buildQuadrants(writer, 3);
|
||||
buildQuadrants(writer, 4);
|
||||
buildQuadrants(writer, 5);
|
||||
buildQuadrants(writer, 6);
|
||||
buildQuadrants(writer, 7);
|
||||
buildQuadrants(writer, 8);
|
||||
|
||||
buildNetherQuadrant(writer, "NetherTone", "NetherToneQ", false);
|
||||
}
|
||||
|
||||
private void buildQuadrants(ModelKlassWriter writer, int quadrant, String s) {
|
||||
private void buildQuadrants(ModelKlassWriter writer, int quadrant) {
|
||||
String s = writer.buildPackageInuktitutDots(quadrant - 1, 3);
|
||||
String q = "ᐊQ" + quadrant;
|
||||
String e = "NetherToneQ" + quadrant;
|
||||
|
||||
|
|
@ -90,8 +100,11 @@ public class ModelNetherTones implements KodeGenModel {
|
|||
buf.append(" extends ");
|
||||
buf.append(quadrant);
|
||||
buf.append(" {\n");
|
||||
for (int i = 1 ; i <= slugSize; i++) {
|
||||
for (int i = 0 ; i < slugSize; i++) {
|
||||
String partCode = "ᐅ" + String.format("%03d", i);
|
||||
if (slugSize < 100) {
|
||||
partCode = "ᐅ" + String.format("%02d", i);
|
||||
}
|
||||
String clsBase = partCode + " extends " + klass.getJavaName();
|
||||
String clsMutexExt = ", " + javaName + "Mutex<" + partCode + ">";
|
||||
buf.append("\tnon-sealed interface " + clsBase + clsMutexExt + " {}\n");
|
||||
|
|
|
|||
|
|
@ -43,28 +43,27 @@ import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB1;
|
|||
import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB2;
|
||||
import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB3;
|
||||
import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1ER0W;
|
||||
import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.NetherToneSlugView;
|
||||
|
||||
public class NetherToneSlugViewTest {
|
||||
|
||||
private interface Q1SlugExample extends
|
||||
ᐊQ1AG1.ᐅ001,
|
||||
ᐊQ1AG2.ᐅ002,
|
||||
ᐊQ1AG3.ᐅ003,
|
||||
ᐊQ1BL0W.ᐅ004,
|
||||
ᐊQ1CR1.ᐅ005,
|
||||
ᐊQ1CR2.ᐅ006,
|
||||
ᐊQ1CR3.ᐅ007,
|
||||
ᐊQ1DB1.ᐅ008,
|
||||
ᐊQ1DB2.ᐅ009,
|
||||
ᐊQ1DB3.ᐅ010,
|
||||
ᐊQ1ER0W.ᐅ011
|
||||
ᐊQ1AG1.ᐅ00,
|
||||
ᐊQ1AG2.ᐅ01,
|
||||
ᐊQ1AG3.ᐅ02,
|
||||
ᐊQ1BL0W.ᐅ003,
|
||||
ᐊQ1CR1.ᐅ04,
|
||||
ᐊQ1CR2.ᐅ05,
|
||||
ᐊQ1CR3.ᐅ06,
|
||||
ᐊQ1DB1.ᐅ07,
|
||||
ᐊQ1DB2.ᐅ08,
|
||||
ᐊQ1DB3.ᐅ09,
|
||||
ᐊQ1ER0W.ᐅ010
|
||||
{
|
||||
}
|
||||
|
||||
private interface Q1SlugExampleErr extends
|
||||
ᐊQ1AG1.ᐅ001,
|
||||
ᐊQ1AG2.ᐅ002
|
||||
ᐊQ1AG1.ᐅ00,
|
||||
ᐊQ1AG2.ᐅ01
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -91,8 +90,8 @@ public class NetherToneSlugViewTest {
|
|||
Assertions.assertNotNull(slug);
|
||||
List<Class<?>> result = slug.toNetherTones(0);
|
||||
Assertions.assertNotNull(result);
|
||||
Assertions.assertEquals(ᐊQ1AG1.ᐅ001.class, result.get(0));
|
||||
Assertions.assertEquals(ᐊQ1AG2.ᐅ002.class, result.get(1));
|
||||
Assertions.assertEquals(ᐊQ1AG3.ᐅ003.class, result.get(2));
|
||||
Assertions.assertEquals(ᐊQ1AG1.ᐅ00.class, result.get(0));
|
||||
Assertions.assertEquals(ᐊQ1AG2.ᐅ01.class, result.get(1));
|
||||
Assertions.assertEquals(ᐊQ1AG3.ᐅ02.class, result.get(2));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue